BioCASe Provider Software
wikidb
https://wiki.bgbm.org/bps/index.php/Main_Page
MediaWiki 1.28.2
first-letter
Media
Special
Talk
User
User talk
BioCASe Provider Software
BioCASe Provider Software talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Main Page
0
1
1
2011-01-06T13:52:01Z
MediaWiki default
0
wikitext
text/x-wiki
'''MediaWiki has been successfully installed.'''
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
25b5c21bea6319ae81e1379d4e59bdfe9100ce36
6
1
2011-06-16T11:21:53Z
JoergHoletschek
3
wikitext
text/x-wiki
= BioCASe Provider Software =
bla
= Table of Conetens =
blubb
8ed7baf7f60586abd0c5c3fe912ed869f0c6629b
7
6
2011-06-16T11:23:01Z
JoergHoletschek
3
wikitext
text/x-wiki
asdfasdfasfd
= BioCASe Provider Software =
bla
= Table of Conetens =
blubb
1c2ea101060a9c5769c06599fe5b135f8522bc85
8
7
2011-06-16T11:24:04Z
JoergHoletschek
3
wikitext
text/x-wiki
asdfasdfasfd asdf '''asdf''' asdf ''asdf''
= BioCASe Provider Software =
bla
= Table of Conetens =
== Table of Conetens ==
== Table of Conetens ==
blubb
8fc5c1d9722e0ba16c1ca1d5f677869ffd6b64a6
9
8
2011-06-16T11:41:26Z
JoergHoletschek
3
wikitext
text/x-wiki
asdfasdfasfd asdf '''asdf''' asdf ''asdf''
= BioCASe Provider Software Wiki =
bla
== Table of Conetens ==
== asdfsds ==
blubb
d2a00000be2bbecef005a439fb24d4868925ecee
10
9
2011-06-16T11:56:53Z
JoergHoletschek
3
Reverted edits by [[Special:Contributions/JoergHoletschek|JoergHoletschek]] ([[User talk:JoergHoletschek|talk]]) to last revision by [[User:MediaWiki default|MediaWiki default]]
wikitext
text/x-wiki
'''MediaWiki has been successfully installed.'''
Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
== Getting started ==
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
25b5c21bea6319ae81e1379d4e59bdfe9100ce36
MediaWiki:Common.css
8
2
2
2011-03-16T12:24:47Z
WikiSysop
1
Created page with "/* CSS placed here will be applied to all skins */ /* Hide title of Main_Page */ /* body.page-Main_Page h1.firstHeading { display:none; } */ /* Hide every title except special ..."
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
body.ns-subject h1.firstHeading { display:none; }
8ee4467e7126608246798d0e6de2da479f439d5e
Template:Sandbox
10
5
5
2011-03-17T13:23:22Z
WikiSysop
1
wikitext
text/x-wiki
<div style="padding:0.3em 0.5em 0.3em 0.5em; border-style:solid; border-width:medium; border-color:#ffdd00">
<span style="color:#cf7606; font-size:140%;">'''Edit this page'''</span>
__NOTOC__
This "sandbox" page is to allow you to carry out experiments. Please feel free to try your skills at formatting here. If you want to learn more about how to edit a wiki, please read [http://www.mediawiki.org/wiki/Help:Editing_pages this introduction] or the [[Wikipedia:Wikipedia:Tutorial|tutorial at Wikipedia]].
__NOEDITSECTION__
To edit, click ''"edit"'' at the top of the page, make your changes in the dialog box, and click the ''"Save page"'' button when you are finished. Please refrain from adding material that is any way offensive, that is copyrighted, or that is at all libelous.
Please do '''NOT''' create new pages without any meaningful content just to try it out!
</div>
= Testing Area =
3ef9536f38b2357328bd1ea5c92e37389a2cab2c
MediaWiki:Sidebar
8
3
3
2011-03-17T13:56:56Z
WikiSysop
1
Created page with "* navigation ** mainpage|mainpage-description ** portal-url|portal ** currentevents-url|currentevents ** recentchanges-url|recentchanges ** randompage-url|randompage ** mediawiki..."
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* SEARCH
* TOOLBOX
* LANGUAGES
3815dfdeba7a9affe9eeda9aa612a0c227e89ce5
Sandbox
0
4
4
2011-03-18T10:55:16Z
WikiSysop
1
wikitext
text/x-wiki
{{Sandbox}}<!--Please leave this line alone and write below (this is the coloured heading)-->
== Formatting ==
''italic'' '''bold'''
== Linking ==
http://purl.net/wiki/moin/
[http://www.python.org/ Python]
[http://c2.com/sig/wiki.gif]
== Lists ==
# Numbered lists are good
## very organized
## easy to follow
=== Bullet ===
* Lists are easy to do:
** start every line
* with a star
** more stars mean
*** deeper levels
Here is a '''new''' test
40aa51520aadcc9711ee71b7d769660859a44f3b
Installation
0
6
11
2011-06-21T11:06:49Z
JoergHoletschek
3
Created page with "This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please re..."
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
Requirements
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
1. You have administrative privileges on this machine, i.e. the user rights to install new software packages.
2. It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
3. A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
Installing Apache/IIS and Python
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the ___libs test page___ of the BGBM installation, find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
Downloading the Provider Software
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
Downloading the Archive File
Just download the archive from the ___download section of the BioCASe site___ and unpack the contents to the destination folder.
Downloading from the Subversion Repository
If you’re using Windows, you need to install a Subversion client first (try __Tortoise___, which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase. This will connect to our server with anonymous access and download all files to the folder biocase. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose Checkout. Fill in the URL, change the destination folder name into something meaningful and press OK:
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named biocase, which should look like this by now:
Running the Setup Script
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (‘’’biocase’’’) and type in python setup.py (in case Python is not found, you’ll have to add the full path name to the Python executable). Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
All of the questions do have defaults. If you want to keep them, just press Enter.
Import configuration from existing installation. Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
Webserver domain: This is the domain name of the web server you’re installing BioCASe on, e.g. http//www.foobar.org. You can keep the default localhost as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
Base URL: This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at www.foobar.org/biocase, for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
Linking BioCASe and Your Web Server
The public part of the provider software is stored in the www subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in C:\biocase, the folder that must be published with a Virtual directory is C:\biocase\www and will be accessible later through http://www.foobar.org/biocase.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file httpd.conf. This can typically be found in the conf folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder c:\biocase\www using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the “Configure” button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add index.html to the list of default documents (virtual directory > properties > documents > default). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
Installing Additional Python Packages
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
Changing the Default Password
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
Checking Your Installation
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
1e4d40b77fb4f4eabcfcf082dceca00d25948dba
12
11
2011-06-21T11:11:59Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the ___libs test page___ of the BGBM installation, find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
Downloading the Archive File
Just download the archive from the ___download section of the BioCASe site___ and unpack the contents to the destination folder.
Downloading from the Subversion Repository
If you’re using Windows, you need to install a Subversion client first (try __Tortoise___, which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase. This will connect to our server with anonymous access and download all files to the folder biocase. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose Checkout. Fill in the URL, change the destination folder name into something meaningful and press OK:
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named biocase, which should look like this by now:
==Running the Setup Script==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (‘’’biocase’’’) and type in python setup.py (in case Python is not found, you’ll have to add the full path name to the Python executable). Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
All of the questions do have defaults. If you want to keep them, just press Enter.
Import configuration from existing installation. Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
Webserver domain: This is the domain name of the web server you’re installing BioCASe on, e.g. http//www.foobar.org. You can keep the default localhost as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
Base URL: This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at www.foobar.org/biocase, for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
==Linking BioCASe and Your Web Server==
The public part of the provider software is stored in the www subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in C:\biocase, the folder that must be published with a Virtual directory is C:\biocase\www and will be accessible later through http://www.foobar.org/biocase.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file httpd.conf. This can typically be found in the conf folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder c:\biocase\www using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the “Configure” button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add index.html to the list of default documents (virtual directory > properties > documents > default). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
e98ca1335e4ec18773495afb905bb0e34657027b
13
12
2011-06-21T11:22:50Z
JoergHoletschek
3
/* Installing Apache/IIS and Python */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
Downloading the Archive File
Just download the archive from the ___download section of the BioCASe site___ and unpack the contents to the destination folder.
Downloading from the Subversion Repository
If you’re using Windows, you need to install a Subversion client first (try __Tortoise___, which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase. This will connect to our server with anonymous access and download all files to the folder biocase. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose Checkout. Fill in the URL, change the destination folder name into something meaningful and press OK:
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named biocase, which should look like this by now:
==Running the Setup Script==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (‘’’biocase’’’) and type in python setup.py (in case Python is not found, you’ll have to add the full path name to the Python executable). Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
All of the questions do have defaults. If you want to keep them, just press Enter.
Import configuration from existing installation. Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
Webserver domain: This is the domain name of the web server you’re installing BioCASe on, e.g. http//www.foobar.org. You can keep the default localhost as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
Base URL: This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at www.foobar.org/biocase, for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
==Linking BioCASe and Your Web Server==
The public part of the provider software is stored in the www subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in C:\biocase, the folder that must be published with a Virtual directory is C:\biocase\www and will be accessible later through http://www.foobar.org/biocase.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file httpd.conf. This can typically be found in the conf folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder c:\biocase\www using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the “Configure” button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add index.html to the list of default documents (virtual directory > properties > documents > default). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
d9fe6c61d81a7866b99e2a3c3e720dd1a3f937a9
14
13
2011-06-21T11:35:58Z
JoergHoletschek
3
/* Downloading the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase. This will connect to our server with anonymous access and download all files to the folder biocase. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose Checkout. Fill in the URL, change the destination folder name into something meaningful and press OK:
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named biocase, which should look like this by now:
==Running the Setup Script==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (‘’’biocase’’’) and type in python setup.py (in case Python is not found, you’ll have to add the full path name to the Python executable). Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
All of the questions do have defaults. If you want to keep them, just press Enter.
Import configuration from existing installation. Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
Webserver domain: This is the domain name of the web server you’re installing BioCASe on, e.g. http//www.foobar.org. You can keep the default localhost as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
Base URL: This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at www.foobar.org/biocase, for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
==Linking BioCASe and Your Web Server==
The public part of the provider software is stored in the www subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in C:\biocase, the folder that must be published with a Virtual directory is C:\biocase\www and will be accessible later through http://www.foobar.org/biocase.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file httpd.conf. This can typically be found in the conf folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder c:\biocase\www using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the “Configure” button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add index.html to the list of default documents (virtual directory > properties > documents > default). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
b27f3f7d426d5964b369a123337582e801ca7105
15
14
2011-06-21T14:56:56Z
JoergHoletschek
3
/* Downloading the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder <small>biocase</small>. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named <small>biocase</small>, which should look like this by now:
==Running the Setup Script==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (‘’’biocase’’’) and type in python setup.py (in case Python is not found, you’ll have to add the full path name to the Python executable). Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
All of the questions do have defaults. If you want to keep them, just press Enter.
Import configuration from existing installation. Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
Webserver domain: This is the domain name of the web server you’re installing BioCASe on, e.g. http//www.foobar.org. You can keep the default localhost as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
Base URL: This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at www.foobar.org/biocase, for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
==Linking BioCASe and Your Web Server==
The public part of the provider software is stored in the www subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in C:\biocase, the folder that must be published with a Virtual directory is C:\biocase\www and will be accessible later through http://www.foobar.org/biocase.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file httpd.conf. This can typically be found in the conf folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder c:\biocase\www using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the “Configure” button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add index.html to the list of default documents (virtual directory > properties > documents > default). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
9bbaf56a3ad7c7411d6ef44ca27e33bddd81bdc8
19
15
2011-06-21T15:08:58Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder <small>biocase</small>. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named <small>biocase</small>, which should look like this by now:
[[image:instBiocaseFolder.png]]
==Running the Setup Script==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (‘’’biocase’’’) and type in python setup.py (in case Python is not found, you’ll have to add the full path name to the Python executable). Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
All of the questions do have defaults. If you want to keep them, just press Enter.
Import configuration from existing installation. Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
Webserver domain: This is the domain name of the web server you’re installing BioCASe on, e.g. http//www.foobar.org. You can keep the default localhost as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
Base URL: This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at www.foobar.org/biocase, for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
==Linking BioCASe and Your Web Server==
The public part of the provider software is stored in the www subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in C:\biocase, the folder that must be published with a Virtual directory is C:\biocase\www and will be accessible later through http://www.foobar.org/biocase.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file httpd.conf. This can typically be found in the conf folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder c:\biocase\www using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the “Configure” button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add index.html to the list of default documents (virtual directory > properties > documents > default). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
6489696300e0be6495e5dafd813096aed15b4c9c
20
19
2011-06-21T15:20:27Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
==Linking BioCASe and Your Web Server==
The public part of the provider software is stored in the www subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in C:\biocase, the folder that must be published with a Virtual directory is C:\biocase\www and will be accessible later through http://www.foobar.org/biocase.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file httpd.conf. This can typically be found in the conf folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder c:\biocase\www using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the “Configure” button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add index.html to the list of default documents (virtual directory > properties > documents > default). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
a46d18f24a01df6ecbc7d1da4153d61695d7fe66
23
20
2011-06-21T15:24:59Z
JoergHoletschek
3
/* Linking BioCASe and Your Web Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[Image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
b2eff89d58f9bbb23f82a606e5f6adf143ffe2d2
24
23
2011-06-21T15:25:32Z
JoergHoletschek
3
/* Linking BioCASe and Your Web Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>). We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
http://www.ecp.cc/pyiis.html
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B276494
http://python.markrowsoft.com/iiswse.asp.
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in http://localhost/biocase (replace localhost with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
9d404df319636d3eccf5a1a8c889e5bcb5c57a1e
25
24
2011-06-21T15:57:22Z
JoergHoletschek
3
/* Linking BioCASe and Your Web Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
==Installing Additional Python Packages==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on ‘Utilities’, then “library test” in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
f53f950c7320a9c6b1d9e2e50f90b0dbc5ce3455
28
25
2011-06-21T15:59:50Z
JoergHoletschek
3
/* Installing Additional Python Packages */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibarariesVanilla.png]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
d7d9c4a3f3bf5e57f801a3161246fd794c1a8627
29
28
2011-06-21T16:00:18Z
JoergHoletschek
3
/* Installing Additional Python Packages */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
==Changing the Default Password==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking “Start” at the top of the page, or by retyping http://localhost/biocase in the browser window), choose “Config Tool”, then “System Administration”. You will then be prompted for a password. Type in the default ACDC, then click “Submit”.
The top of the configuration page you’ll be directed to should look similar to this:
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults localhost and biocase). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press “update config” to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled “Graphviz dot binary”. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press “update config” to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
ee56e8617c9ac0f0e3c2e089b70de62ab2234e8a
31
29
2011-06-21T16:05:27Z
JoergHoletschek
3
/* Changing the Default Password */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
==Checking Your Installation==
Before you proceed to the configuration, you should make sure everything is installed correctly:
1. Typing in http://localhost/biocase (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
2. The libraries test page (Utilities/library test) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
3. “Status of writeable directories” shows a green writeable for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
f79d36718e1bb9e5bb3c4d6b87514d58026533e8
33
31
2011-06-21T16:08:44Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown here)
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png]]
0b0570f9deed2eb23c252c7a140733b8b9de021f
35
33
2011-06-21T16:13:58Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[ Installation ]] ).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png]]
b1bcdcc6311b51d9c34b45dc4970b083597b53cb
36
35
2011-06-21T16:15:42Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|200px]][[image:instTortoiseDialog.png|500px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png]]
4a6780b7f6a390662633a17f0480b11cefb3b532
37
36
2011-06-21T16:19:22Z
JoergHoletschek
3
/* Downloading the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png]]
72a2f6fa0a618d05c6b7a2ce571ff795f9cd94e2
38
37
2011-06-21T16:23:43Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|480px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|480px]]
adf7ebb9c180b026c0c1ea5edc01d96f78ae339e
39
38
2011-06-21T16:25:19Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can be cumbersome; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
e689c5962822e7974e2ecfb8f98b61dde1a2a70b
40
39
2011-06-21T16:29:37Z
JoergHoletschek
3
/* Linking BioCASe and Your Web Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the ___Introduction___ and the ___Beginner’s Guide___ first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or ___get in contact with the BioCASE Team___.
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
3b06f27efe976ed91570fe46d88a8eaadc34fdf3
File:InstBiocaseFolder.png
6
7
16
2011-06-21T14:58:14Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstTortoiseMenu.png
6
8
17
2011-06-21T15:05:34Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstTortoiseDialog.png
6
9
18
2011-06-21T15:05:52Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstSetupScriptStart.png
6
10
21
2011-06-21T15:20:57Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstSetupScriptDone.png
6
11
22
2011-06-21T15:21:20Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstHttpdConf.png
6
12
26
2011-06-21T15:57:33Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstBiocaseStartpage.png
6
13
27
2011-06-21T15:57:49Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstLibrariesVanilla.png
6
14
30
2011-06-21T16:00:56Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstConfigTool.png
6
15
32
2011-06-21T16:05:36Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstLibrariesDone.png
6
16
34
2011-06-21T16:08:54Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Preparation
0
17
41
2011-06-22T12:57:59Z
JoergHoletschek
3
Created page with "Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessa..."
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
Live-DB versus Snapshot
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
Access Control
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (SHOW TABLES, SHOW COLUMNS).
Metadata
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in sampledb\abcdmetadata. Either use the SQL script to create it in your database, or import it from the Access .mdb.
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
Controlled Denormalisation
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
Repeatable Elements in ABCD
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
80eddef81ba5b899a850cd000372e91ee2ae28e7
42
41
2011-06-22T13:03:32Z
JoergHoletschek
3
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (SHOW TABLES, SHOW COLUMNS).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in sampledb\abcdmetadata. Either use the SQL script to create it in your database, or import it from the Access .mdb.
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
5a738bd0745c019aab1156f154f5ebef13b13126
43
42
2011-06-22T13:04:16Z
JoergHoletschek
3
wikitext
text/x-wiki
= Preparation of your database =
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (SHOW TABLES, SHOW COLUMNS).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in sampledb\abcdmetadata. Either use the SQL script to create it in your database, or import it from the Access .mdb.
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
95985b0562ad37ef4736b7b87acd49be74d61d16
44
43
2011-06-22T13:06:32Z
JoergHoletschek
3
wikitext
text/x-wiki
Preparation of your database
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (SHOW TABLES, SHOW COLUMNS).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in sampledb\abcdmetadata. Either use the SQL script to create it in your database, or import it from the Access .mdb.
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
0cccfefe66847ff9f923d0fb4a46fa3adcc81b84
45
44
2011-06-22T13:06:52Z
JoergHoletschek
3
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (SHOW TABLES, SHOW COLUMNS).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in sampledb\abcdmetadata. Either use the SQL script to create it in your database, or import it from the Access .mdb.
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
5a738bd0745c019aab1156f154f5ebef13b13126
46
45
2011-06-22T13:07:46Z
JoergHoletschek
3
/* Access Control */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in sampledb\abcdmetadata. Either use the SQL script to create it in your database, or import it from the Access .mdb.
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
0467ae0183ec8ae59a76cf48c2c16c4b289d3ec4
47
46
2011-06-22T13:09:39Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
b10124223d3f22ce7e90fd34807050bc60a49530
48
47
2011-06-22T13:10:52Z
JoergHoletschek
3
/* Controlled Denormalisation */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
f8ba32099416fbdfd42b1fd09cdaf9bd3eb24ca7
50
48
2011-06-22T13:11:52Z
JoergHoletschek
3
/* Controlled Denormalisation */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely MultimediaObject/FileURI.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, HigherTaxon/Name. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
The SQL statement
CREATE VIEW [dbo].[vwHigherTaxa]
AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id, [kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION
...
Will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data.
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
- Identification
- HigherTaxon
- GatheringSite/NamedArea
- Metadata/Scope/GeoecologicalTerms
- Metadata/Scope/TaxonomicTerms
- MultimediaObjects
- MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
e0240c5ab26acebb56f6574bcc1cf77adb2fde03
File:PrepDenormalisation.png
6
18
49
2011-06-22T13:11:09Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Preparation
0
17
51
50
2011-06-22T13:16:31Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
41b08128efd2fb591b18d82463d6f0ab2a44a15f
55
51
2011-06-22T13:19:29Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please contact the ___Biocase Support___.
1fa920693fbf69dc07794c24b220707c18cab553
File:PrepPivoting.png
6
19
52
2011-06-22T13:17:46Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:PrepEditTable.png
6
20
53
2011-06-22T13:18:08Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:PrepEditView.png
6
21
54
2011-06-22T13:18:27Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
CommonABCD2Concepts
0
22
56
2011-06-22T13:49:20Z
JoergHoletschek
3
Created page with "This page lists the most commonly used ABCD 2.06 concepts. The full ABCD documentation can be found here. == Mandatory == List of mandatory concepts. Without them being mapped ..."
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts.
The full ABCD documentation can be found here.
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Name
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Name
* /DataSets/DataSet/Metadata/Description/Representation/Title
* /DataSets/DataSet/Metadata/Description/Representation[@language]
* /DataSets/DataSet/Metadata/RevisionData/DateModified
Unitdata
* /DataSets/DataSet/Units/Unit/SourceInstitutionID
* /DataSets/DataSet/Units/Unit/SourceID
* /DataSets/DataSet/Units/Unit/UnitID
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Email
* /DataSets/DataSet/ContentContacts/ContentContact/Address
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Email
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Address
* /DataSets/DataSet/Metadata/Description/Representation/Details
* /DataSets/DataSet/Metadata/Owners/Owner/Organisation/Name/Representation/Text
* /DataSets/DataSet/Metadata/Owners/Owner/Person/FullName
* /DataSets/DataSet/Metadata/Owners/Owner/URIs/URL
* /DataSets/DataSet/Metadata/Owners/Owner/LogoURI
Unitdata
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonRank
* /DataSets/DataSet/Units/Unit/Identifications/Identification/PreferredFlag
* /DataSets/DataSet/Units/Unit/RecordBasis
* /DataSets/DataSet/Units/Unit/Gathering/DateTime/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/Gathering/Agents/GatheringAgent/Person/FullName
* /DataSets/DataSet/Units/Unit/Gathering/LocalityText
* /DataSets/DataSet/Units/Unit/Gathering/Country/ISO3166Code
* /DataSets/DataSet/Units/Unit/Gathering/Country/Name
* /DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LongitudeDecimal
*/DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LatitudeDecimal
== Commonly Used ==
List of further commonly mapped ABCD concepts.
Metadata
* /DataSets/DataSet/IPRStatements/TermsOfUseStatements/TermsOfUse/Text
* /DataSets/DataSet/IPRStatements/Copyrights/Copyright/Text
* /DataSets/DataSet/IPRStatements/IPRDeclarations/IPRDeclaration/Text
* /DataSets/DataSet/IPRStatements/Licenses/License/Text
* /DataSets/DataSet/IPRStatements/Disclaimers/Disclaimer/Text
* /DataSets/DataSet/IPRStatements/Citations/Citation/Text
* /DataSets/DataSet/IPRStatements/Acknowledgements/Acknowledgement/Text
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
2dcf8a127cfefad3039cb4652f3c03091796afbd
57
56
2011-06-22T13:53:41Z
JoergHoletschek
3
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Name
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Name
* /DataSets/DataSet/Metadata/Description/Representation/Title
* /DataSets/DataSet/Metadata/Description/Representation[@language]
* /DataSets/DataSet/Metadata/RevisionData/DateModified
Unitdata
* /DataSets/DataSet/Units/Unit/SourceInstitutionID
* /DataSets/DataSet/Units/Unit/SourceID
* /DataSets/DataSet/Units/Unit/UnitID
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Email
* /DataSets/DataSet/ContentContacts/ContentContact/Address
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Email
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Address
* /DataSets/DataSet/Metadata/Description/Representation/Details
* /DataSets/DataSet/Metadata/Owners/Owner/Organisation/Name/Representation/Text
* /DataSets/DataSet/Metadata/Owners/Owner/Person/FullName
* /DataSets/DataSet/Metadata/Owners/Owner/URIs/URL
* /DataSets/DataSet/Metadata/Owners/Owner/LogoURI
Unitdata
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonRank
* /DataSets/DataSet/Units/Unit/Identifications/Identification/PreferredFlag
* /DataSets/DataSet/Units/Unit/RecordBasis
* /DataSets/DataSet/Units/Unit/Gathering/DateTime/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/Gathering/Agents/GatheringAgent/Person/FullName
* /DataSets/DataSet/Units/Unit/Gathering/LocalityText
* /DataSets/DataSet/Units/Unit/Gathering/Country/ISO3166Code
* /DataSets/DataSet/Units/Unit/Gathering/Country/Name
* /DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LongitudeDecimal
*/DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LatitudeDecimal
== Commonly Used ==
List of further commonly mapped ABCD concepts.
Metadata
* /DataSets/DataSet/IPRStatements/TermsOfUseStatements/TermsOfUse/Text
* /DataSets/DataSet/IPRStatements/Copyrights/Copyright/Text
* /DataSets/DataSet/IPRStatements/IPRDeclarations/IPRDeclaration/Text
* /DataSets/DataSet/IPRStatements/Licenses/License/Text
* /DataSets/DataSet/IPRStatements/Disclaimers/Disclaimer/Text
* /DataSets/DataSet/IPRStatements/Citations/Citation/Text
* /DataSets/DataSet/IPRStatements/Acknowledgements/Acknowledgement/Text
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
c0fe9da0bc65e0a9f715338047587c98d5150e9f
VersionHistory
0
23
58
2011-06-22T14:03:29Z
JoergHoletschek
3
Created page with "<h2>Version 2.6</h2> <h3>Version 2.6.1 [upcoming]</h3> * Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm. ===Versio..."
wikitext
text/x-wiki
<h2>Version 2.6</h2>
<h3>Version 2.6.1 [upcoming]</h3>
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14, withdrawn] ===
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
* Internet Explorer compatability fixed (no tablealias names were saved)
* CMF filter display fixed. Colored green now
* Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
* Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
* Bug fixing
* Configtool
* Lot of little bugs solved.
* Make possible to map attributes
* Be able to delete mappings
* Alert user when several CMFs with the same namespace exist for a datasource
* Allow full xpaths to be entered directly into the add path form
* allow datasource admin to delete all serialized objects
* !QueryTool
* More inteligent XSLT for processing
* !PyWrapper
* Solved error with wrapper not presenting attributes
* Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
= Version 1 history =
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version:
. Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files.
. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton
. for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml
. and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
57f9d34ffc0268040a0ecff7baed2fee1cdbeccb
59
58
2011-06-22T14:04:57Z
JoergHoletschek
3
wikitext
text/x-wiki
<h2>Version 2.6<h2>
<h3>Version 2.6.1 [upcoming]<h3>
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14, withdrawn] ===
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
* Internet Explorer compatability fixed (no tablealias names were saved)
* CMF filter display fixed. Colored green now
* Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
* Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
* Bug fixing
* Configtool
* Lot of little bugs solved.
* Make possible to map attributes
* Be able to delete mappings
* Alert user when several CMFs with the same namespace exist for a datasource
* Allow full xpaths to be entered directly into the add path form
* allow datasource admin to delete all serialized objects
* !QueryTool
* More inteligent XSLT for processing
* !PyWrapper
* Solved error with wrapper not presenting attributes
* Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
= Version 1 history =
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version:
. Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files.
. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton
. for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml
. and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b04a256f95e9cf638d5577ceee2b3eb74c9b09fb
60
59
2011-06-22T14:24:10Z
JoergHoletschek
3
wikitext
text/x-wiki
== Version 2 History ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14, withdrawn] ===
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6923382a5d52f26c6def32a59c4d71bc755b65c8
DatasourceSetup
0
24
61
2011-06-23T14:12:19Z
JoergHoletschek
3
Created page with "This tutorial explains in detail how to set up a datasource. A BioCASe Data Source Publishing a database with BioCASe means it will be made accessible through a BioCASe web serv..."
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
A BioCASe Data Source
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
Creating a New Data Source
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
Creating a new data source can be done in the configuration tool. Choose Config Tool on the start page, then System Administration. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ACDC). In the configuration screen, the sections Data Sources and Recycle Bin can be used to create, remove und un-remove a data source:
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click Create DSA (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking “Remove” will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select abcdmetadata in the Template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in sampledb/abcdmetadata to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
Setting up the database connection
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the Schemas section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the abcdmetadata template:
The link on the Database Connection section will take you to the connection parameters dialog. Fill in the values for your database, press Save and Hope for the connection to turn into a nice green OK:
DBMS: Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
Host: Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) Datasource; the server or file name of the DBMS will be stored in the ODBC configuration.
Database: Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
User/Password: Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just Read access for this.
Encoding: The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
Once you’ve entered the correct values, press “Save”. Click “Overview” in the link list on the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into OK (and doesn’t after you’ve returned to the Overview page), please read the __Debug guide__ about how to trace the problem.
Setting up the Database Structure
Clicking on “Edit DB Structure” on the Datasource Overview page will show the DB structure setup. Make sure the connection status at the top of the page still is OK.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
First step: Adding all tables/views with their primary keys
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the Alias text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example specimen for the root specimen table). Press Add to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under Primary Key Atrribute(s). In case the data type is a string and not an integer, select text from the drop-down list. Press Add to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
Second step: Specifying the foreign keys
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the Foreign Key(s) column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press Add. Select the attribute that stores the foreign key and change the data type if it is not integer, then press Add. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
Saving, Editing an existing Setup
You can change aliases of tables you’ve already added to the list. To do so, go to the alias text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to “Delete Alias” and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by Pressing Save at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the Revert button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
fe7edc89514ad47d5f473e0b9aa05cedc2ab7256
62
61
2011-06-23T14:14:37Z
JoergHoletschek
3
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
Creating a new data source can be done in the configuration tool. Choose Config Tool on the start page, then System Administration. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ACDC). In the configuration screen, the sections Data Sources and Recycle Bin can be used to create, remove und un-remove a data source:
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click Create DSA (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking “Remove” will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select abcdmetadata in the Template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in sampledb/abcdmetadata to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the Schemas section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the abcdmetadata template:
The link on the Database Connection section will take you to the connection parameters dialog. Fill in the values for your database, press Save and Hope for the connection to turn into a nice green OK:
DBMS: Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
Host: Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) Datasource; the server or file name of the DBMS will be stored in the ODBC configuration.
Database: Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
User/Password: Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just Read access for this.
Encoding: The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
Once you’ve entered the correct values, press “Save”. Click “Overview” in the link list on the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into OK (and doesn’t after you’ve returned to the Overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on “Edit DB Structure” on the Datasource Overview page will show the DB structure setup. Make sure the connection status at the top of the page still is OK.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the Alias text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example specimen for the root specimen table). Press Add to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under Primary Key Atrribute(s). In case the data type is a string and not an integer, select text from the drop-down list. Press Add to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the Foreign Key(s) column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press Add. Select the attribute that stores the foreign key and change the data type if it is not integer, then press Add. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the alias text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to “Delete Alias” and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by Pressing Save at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the Revert button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
545677a745f6bdc7eddea5cecb4dd7d3c0a66a95
63
62
2011-06-23T14:20:36Z
JoergHoletschek
3
/* Creating a New Data Source */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the Schemas section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the abcdmetadata template:
The link on the Database Connection section will take you to the connection parameters dialog. Fill in the values for your database, press Save and Hope for the connection to turn into a nice green OK:
DBMS: Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
Host: Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) Datasource; the server or file name of the DBMS will be stored in the ODBC configuration.
Database: Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
User/Password: Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just Read access for this.
Encoding: The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
Once you’ve entered the correct values, press “Save”. Click “Overview” in the link list on the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into OK (and doesn’t after you’ve returned to the Overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on “Edit DB Structure” on the Datasource Overview page will show the DB structure setup. Make sure the connection status at the top of the page still is OK.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the Alias text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example specimen for the root specimen table). Press Add to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under Primary Key Atrribute(s). In case the data type is a string and not an integer, select text from the drop-down list. Press Add to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the Foreign Key(s) column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press Add. Select the attribute that stores the foreign key and change the data type if it is not integer, then press Add. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the alias text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to “Delete Alias” and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by Pressing Save at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the Revert button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
00ea3d32a2377ea28da913a9cf51a266ca687a03
65
63
2011-06-23T14:25:38Z
JoergHoletschek
3
/* Creating a New Data Source */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the Schemas section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the abcdmetadata template:
The link on the Database Connection section will take you to the connection parameters dialog. Fill in the values for your database, press Save and Hope for the connection to turn into a nice green OK:
DBMS: Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
Host: Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) Datasource; the server or file name of the DBMS will be stored in the ODBC configuration.
Database: Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
User/Password: Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just Read access for this.
Encoding: The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
Once you’ve entered the correct values, press “Save”. Click “Overview” in the link list on the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into OK (and doesn’t after you’ve returned to the Overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on “Edit DB Structure” on the Datasource Overview page will show the DB structure setup. Make sure the connection status at the top of the page still is OK.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the Alias text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example specimen for the root specimen table). Press Add to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under Primary Key Atrribute(s). In case the data type is a string and not an integer, select text from the drop-down list. Press Add to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the Foreign Key(s) column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press Add. Select the attribute that stores the foreign key and change the data type if it is not integer, then press Add. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the alias text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to “Delete Alias” and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by Pressing Save at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the Revert button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
707c45996b3dfb07d82be58517e303b27d3cb74d
66
65
2011-06-23T14:32:43Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green OK:
[[File:dsaDBConnection.png]]
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on “Edit DB Structure” on the Datasource Overview page will show the DB structure setup. Make sure the connection status at the top of the page still is OK.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the Alias text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example specimen for the root specimen table). Press Add to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under Primary Key Atrribute(s). In case the data type is a string and not an integer, select text from the drop-down list. Press Add to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the Foreign Key(s) column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press Add. Select the attribute that stores the foreign key and change the data type if it is not integer, then press Add. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the alias text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to “Delete Alias” and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by Pressing Save at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the Revert button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
3e6fd30cdc93604444b55b575c4d05f66be9ea1a
69
66
2011-06-23T14:35:23Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>:
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on “Edit DB Structure” on the Datasource Overview page will show the DB structure setup. Make sure the connection status at the top of the page still is OK.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the Alias text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example specimen for the root specimen table). Press Add to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under Primary Key Atrribute(s). In case the data type is a string and not an integer, select text from the drop-down list. Press Add to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the Foreign Key(s) column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press Add. Select the attribute that stores the foreign key and change the data type if it is not integer, then press Add. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the alias text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to “Delete Alias” and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by Pressing Save at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the Revert button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
b7ae46ed78c132a1cb473b4266655f09bf3a8249
70
69
2011-06-23T14:44:58Z
JoergHoletschek
3
/* Setting up the Database Structure */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>:
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
6553163b8defd2513d7aaeb7ebac647823e6744d
72
70
2011-06-23T14:45:57Z
JoergHoletschek
3
/* Setting up the Database Structure */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>:
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
Note: The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
fd9199b389217fe491709dc342dbcfb0c8f6096e
73
72
2011-06-23T14:49:13Z
JoergHoletschek
3
/* Saving, Editing an Existing Setup */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the ___Database preparation___ guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>:
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the ___DB Preparation Guide___, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the ___DB preparation guide___): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
29e8fc31176b1be43fe716898b9ae855e1495492
File:DsaCreateDatasourceEmpty.png
6
25
64
2011-06-23T14:20:49Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DsaOverview.png
6
26
67
2011-06-23T14:32:56Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DsaDBConnection.png
6
27
68
2011-06-23T14:33:29Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DsaDatabaseStructure AlgenEngels.png
6
28
71
2011-06-23T14:45:09Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
ABCD2Mapping
0
29
74
2011-06-30T10:15:18Z
JoergHoletschek
3
Created page with "This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID)..."
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata. The full documentation on ABCD can be found here, a list of commonly used ABCD elements here.
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ‘’abcdmetadata’’), a schema mapping for ABCD will be already existent. In this case, you can directly jump to __Mapping editor__ section. If you created an empty data source, the section <small>Schemas</small>in the data source configuration overview will be empty:
In order to create a new schema mapping, select the desired schema from the list and click <small>create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ‘’UnitID’’). This identifier must not be the primary key, as long as it’s unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the Revert button to restore the state when you’ve saved for the last time.
In the mapping editor, the link Overview at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
Technical/Content Contact: These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
Metadata: In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
Units: This part stores the “real” data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called “Triple ID”, which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
- ‘’UnitID’’, which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
- ‘’ SourceInstitutionID’’, an identifier for the institution publishing the dataset (for example BGBM);
- ‘’ SourceID’’, an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
In this case, the element /DataSets/DataSet/Metadata/RevisionData/DateModified is mapped to the column ‘’source_update’’ of the ‘’metadata’’ table, which has the data type ‘’date’’. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ‘’searchable’’ flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files. It should now look similar to this:
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ‘’flora’’ being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on “ABCD2 Search” to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
As you can see, there is a filter set on the ‘’ScientificName’’ element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the – symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements (“successfully” means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing Save you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely <small>country</small>. The browser will jump to the Country tree of the Gathering element, where you’ll find the elements for country name (Name), ISO country code (ISO3166Code) and the country name in the country’s language (NameDerived):
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements here. The full ABCD documentation can be found here.
Here you can have a look at a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea: asdfads
58fd0f802d1e3b00efb2572b971147321fb2ec88
75
74
2011-06-30T10:18:38Z
JoergHoletschek
3
/* Access to Biological Collection Data Schema (ABCD) */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ‘’abcdmetadata’’), a schema mapping for ABCD will be already existent. In this case, you can directly jump to __Mapping editor__ section. If you created an empty data source, the section <small>Schemas</small>in the data source configuration overview will be empty:
In order to create a new schema mapping, select the desired schema from the list and click <small>create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ‘’UnitID’’). This identifier must not be the primary key, as long as it’s unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the Revert button to restore the state when you’ve saved for the last time.
In the mapping editor, the link Overview at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
Technical/Content Contact: These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
Metadata: In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
Units: This part stores the “real” data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called “Triple ID”, which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
- ‘’UnitID’’, which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
- ‘’ SourceInstitutionID’’, an identifier for the institution publishing the dataset (for example BGBM);
- ‘’ SourceID’’, an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
In this case, the element /DataSets/DataSet/Metadata/RevisionData/DateModified is mapped to the column ‘’source_update’’ of the ‘’metadata’’ table, which has the data type ‘’date’’. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ‘’searchable’’ flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files. It should now look similar to this:
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ‘’flora’’ being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on “ABCD2 Search” to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
As you can see, there is a filter set on the ‘’ScientificName’’ element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the – symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements (“successfully” means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing Save you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely <small>country</small>. The browser will jump to the Country tree of the Gathering element, where you’ll find the elements for country name (Name), ISO country code (ISO3166Code) and the country name in the country’s language (NameDerived):
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements here. The full ABCD documentation can be found here.
Here you can have a look at a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea: asdfads
fa4864aa0dfacf99287193fe551861fbd080e8f4
76
75
2011-06-30T10:24:21Z
JoergHoletschek
3
/* Creating an ABCD Mapping for a Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the section [[#The Mapping Editor]]. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ‘’UnitID’’). This identifier must not be the primary key, as long as it’s unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the Revert button to restore the state when you’ve saved for the last time.
In the mapping editor, the link Overview at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
Technical/Content Contact: These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
Metadata: In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
Units: This part stores the “real” data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called “Triple ID”, which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
- ‘’UnitID’’, which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
- ‘’ SourceInstitutionID’’, an identifier for the institution publishing the dataset (for example BGBM);
- ‘’ SourceID’’, an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
In this case, the element /DataSets/DataSet/Metadata/RevisionData/DateModified is mapped to the column ‘’source_update’’ of the ‘’metadata’’ table, which has the data type ‘’date’’. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ‘’searchable’’ flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files. It should now look similar to this:
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ‘’flora’’ being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on “ABCD2 Search” to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
As you can see, there is a filter set on the ‘’ScientificName’’ element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the – symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements (“successfully” means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing Save you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely <small>country</small>. The browser will jump to the Country tree of the Gathering element, where you’ll find the elements for country name (Name), ISO country code (ISO3166Code) and the country name in the country’s language (NameDerived):
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements here. The full ABCD documentation can be found here.
Here you can have a look at a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea: asdfads
41c13f792742b68492ef52535d2da5b90a95c592
77
76
2011-06-30T10:26:49Z
JoergHoletschek
3
/* Creating an ABCD Mapping for a Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ‘’UnitID’’). This identifier must not be the primary key, as long as it’s unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the Revert button to restore the state when you’ve saved for the last time.
In the mapping editor, the link Overview at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
Technical/Content Contact: These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
Metadata: In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
Units: This part stores the “real” data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called “Triple ID”, which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
- ‘’UnitID’’, which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
- ‘’ SourceInstitutionID’’, an identifier for the institution publishing the dataset (for example BGBM);
- ‘’ SourceID’’, an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
In this case, the element /DataSets/DataSet/Metadata/RevisionData/DateModified is mapped to the column ‘’source_update’’ of the ‘’metadata’’ table, which has the data type ‘’date’’. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ‘’searchable’’ flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files. It should now look similar to this:
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ‘’flora’’ being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on “ABCD2 Search” to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
As you can see, there is a filter set on the ‘’ScientificName’’ element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the – symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements (“successfully” means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing Save you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely <small>country</small>. The browser will jump to the Country tree of the Gathering element, where you’ll find the elements for country name (Name), ISO country code (ISO3166Code) and the country name in the country’s language (NameDerived):
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements here. The full ABCD documentation can be found here.
Here you can have a look at a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea: asdfads
ac6ec5b9ca17df0a42a8bc9163c0e00ab780bc24
79
77
2011-06-30T10:30:02Z
JoergHoletschek
3
/* The Mapping Editor */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier must not be the primary key, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
Technical/Content Contact: These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
Metadata: In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
Units: This part stores the “real” data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called “Triple ID”, which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
- ‘’UnitID’’, which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
- ‘’ SourceInstitutionID’’, an identifier for the institution publishing the dataset (for example BGBM);
- ‘’ SourceID’’, an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
In this case, the element /DataSets/DataSet/Metadata/RevisionData/DateModified is mapped to the column ‘’source_update’’ of the ‘’metadata’’ table, which has the data type ‘’date’’. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ‘’searchable’’ flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files. It should now look similar to this:
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ‘’flora’’ being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on “ABCD2 Search” to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
As you can see, there is a filter set on the ‘’ScientificName’’ element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the – symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements (“successfully” means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing Save you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely <small>country</small>. The browser will jump to the Country tree of the Gathering element, where you’ll find the elements for country name (Name), ISO country code (ISO3166Code) and the country name in the country’s language (NameDerived):
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements here. The full ABCD documentation can be found here.
Here you can have a look at a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea: asdfads
5d47bbbd5765cd7b30c6d72c0bf83fccb87ae26d
82
79
2011-06-30T10:36:55Z
JoergHoletschek
3
/* Adding Mandatory ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier must not be the primary key, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ‘’flora’’ being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on “ABCD2 Search” to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
As you can see, there is a filter set on the ‘’ScientificName’’ element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the – symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements (“successfully” means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing Save you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely <small>country</small>. The browser will jump to the Country tree of the Gathering element, where you’ll find the elements for country name (Name), ISO country code (ISO3166Code) and the country name in the country’s language (NameDerived):
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements here. The full ABCD documentation can be found here.
Here you can have a look at a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea: asdfads
5e3e9e48d064dbd208dc018efb7d74329e42c07c
86
82
2011-06-30T10:44:14Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier must not be the primary key, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<pre>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/
TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</pre>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements (“successfully” means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing Save you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely <small>country</small>. The browser will jump to the Country tree of the Gathering element, where you’ll find the elements for country name (Name), ISO country code (ISO3166Code) and the country name in the country’s language (NameDerived):
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements here. The full ABCD documentation can be found here.
Here you can have a look at a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea: asdfads
450ff4724f5d3a6d24b9602619b1baf990c9f46c
90
86
2011-06-30T10:51:21Z
JoergHoletschek
3
/* Adding additional ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier must not be the primary key, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<pre>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/
TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</pre>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following link will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements. But still it’s good to get an idea:
[[File:abcdDocumentFullMapping.xml]]
bf7946cdb5bba6b74361c48788e4d2a4a817d538
92
90
2011-06-30T11:00:04Z
JoergHoletschek
3
/* Adding additional ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier must not be the primary key, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<pre>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/
TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</pre>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the ___debugging tutorial__ on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
fe66360e5a4e16b9ad83ead889b23a9664bb58f5
File:AbcdSchemaMappings.png
6
30
78
2011-06-30T10:27:03Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdMappingEditorEmpty.png
6
31
80
2011-06-30T10:30:47Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdSchemaMappings2.png
6
32
81
2011-06-30T10:31:05Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdMappingEditorEmptyBottom.png
6
33
83
2011-06-30T10:37:08Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdMappingEditorDialog.png
6
34
84
2011-06-30T10:37:22Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdMappingEditorMandatoryElements.png
6
35
85
2011-06-30T10:37:39Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdQueryFormEmpty.png
6
36
87
2011-06-30T10:44:30Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdQueryFormFilled.png
6
37
88
2011-06-30T10:44:59Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdResponseMandatoryElements.png
6
38
89
2011-06-30T10:45:21Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdMappingEditorSearch.png
6
39
91
2011-06-30T10:51:38Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
SampleABCDDocument
0
40
93
2011-06-30T11:02:02Z
JoergHoletschek
3
Created page with "This page shows a sample response ABCD2 document for a web service with 77 concepts mapped. For easier viewing, you can save the contents of the box into a file with the extensio..."
wikitext
text/x-wiki
This page shows a sample response ABCD2 document for a web service with 77 concepts mapped. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees.
<pre>
<?xml version='1.0' encoding='UTF-8'?>
<biocase:response xmlns:abcd="http://www.tdwg.org/schemas/abcd/2.06" xmlns:biocase="http://www.biocase.org/schemas/protocol/1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.biocase.org/schemas/protocol/1.3 http://www.bgbm.org/biodivinf/schema/protocol_1_31.xsd">
<!-- XML generated by BioCASE PyWrapper software version 2.6.0. Made in Berlin. -->
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
<biocase:content recordCount="10" recordDropped="0" recordStart="0" totalSearchHits="11">
<abcd:DataSets>
<abcd:DataSet>
<abcd:TechnicalContacts>
<abcd:TechnicalContact>
<abcd:Name>Botanic Garden and Botanical Museum Berlin-Dahlem</abcd:Name>
<abcd:Email>biodiversitydata@bgbm.org</abcd:Email>
<abcd:Address>Königin-Luise-Str. 6-8, D-14195 Berlin</abcd:Address>
</abcd:TechnicalContact>
</abcd:TechnicalContacts>
<abcd:ContentContacts>
<abcd:ContentContact>
<abcd:Name>Dr. Monika Engels</abcd:Name>
<abcd:Email>engels@botanik.uni-hamburg.de</abcd:Email>
<abcd:Phone>+49 40 428 16 321</abcd:Phone>
<abcd:Address>Ohnhorststr. 18, D-22609 Hamburg</abcd:Address>
</abcd:ContentContact>
</abcd:ContentContacts>
<abcd:Metadata>
<abcd:Description>
<abcd:Representation abcd:language="EN">
<abcd:Title>Desmidiaceae Engels</abcd:Title>
<abcd:Details>A new record of reference material of the Desmidiaceae of Germany was compiled, using the databank “Specify”. Aim of the project was to summarize and digitalize the data of the dried and otherwise preserved specimens stored in the German herbaria as well as of the living strains, cultured in culture collections. Many of the references are completed by figures of the labels or by scanned micrographs from preparations for the light- or scanning microscopes.</abcd:Details>
<abcd:URI>http://www.gbif.de/botanik/projekte/desmidiaceae_hamburg_ffm/index_html</abcd:URI>
</abcd:Representation>
</abcd:Description>
<abcd:IconURI>http://ww3.bgbm.org/providerResources/BzF.jpg</abcd:IconURI>
<abcd:RevisionData>
<abcd:Creators>Desmidiaceae Engels (BzF)</abcd:Creators>
<abcd:DateModified>2008-01-23T00:00:00</abcd:DateModified>
</abcd:RevisionData>
<abcd:Owners>
<abcd:Owner>
<abcd:Organisation>
<abcd:Name>
<abcd:Representation abcd:language="EN">
<abcd:Text>Biozentrum Klein-Flottbek, Universität Hamburg</abcd:Text>
<abcd:Abbreviation>BzF</abcd:Abbreviation>
</abcd:Representation>
</abcd:Name>
</abcd:Organisation>
</abcd:Owner>
</abcd:Owners>
<abcd:IPRStatements>
<abcd:IPRDeclarations>
<abcd:IPRDeclaration abcd:language="EN">
<abcd:Text>The Intellectual Property Rights are held by the legal owner or, in case of living persons, by the collector or determinator.</abcd:Text>
</abcd:IPRDeclaration>
</abcd:IPRDeclarations>
<abcd:Copyrights>
<abcd:Copyright abcd:language="EN">
<abcd:Text>No part of this data base may be copied or reproduced without written permission from the legal owner.</abcd:Text>
</abcd:Copyright>
</abcd:Copyrights>
<abcd:TermsOfUseStatements>
<abcd:TermsOfUse abcd:language="EN">
<abcd:Text>The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The database or part of it may only be used or copied by the written permission from the legal owner. If used for publication, we ask for a copy or an off-print.</abcd:Text>
</abcd:TermsOfUse>
</abcd:TermsOfUseStatements>
<abcd:Disclaimers>
<abcd:Disclaimer abcd:language="EN">
<abcd:Text>No responsibility is accepted for the accuracy of the information in this database.</abcd:Text>
</abcd:Disclaimer>
</abcd:Disclaimers>
<abcd:Acknowledgements>
<abcd:Acknowledgement abcd:language="EN">
<abcd:Text>The authors are much indebted to the Scientists of the Informatics Biodiversity Research Center der University of Kansas, USA (http://www.specifysoftware.org), who developed the ?Specify?-Software. Many thanks also to the curators of different Herbaria: Dr. Regine Jahn (BGBM, FU-Berlin), Dr. Dagmar Triebel (Botanische Staatssammlung München), Dr. Monika Steinhof (Übersee Museum Bremen), Christian Blümel (Universität Rostock) and Dr. Christian Printzen (Forschungsinstitut Senckenberg Frankfurt a.M.). Last not least thanks to the busy co-workers Sebastian Frerichmann, Maas Mollenhauer, Constanze Kovaci and Petra Kretschmann.</abcd:Text>
</abcd:Acknowledgement>
</abcd:Acknowledgements>
<abcd:Citations>
<abcd:Citation abcd:language="EN">
<abcd:Text>Engels, Monika 2003 - (continuously updated) Catalogus novus et amplificatus speciminum et viventium algarum Desmidiacearum (New and extended catalogue of herbarium specimen and living material of Desmidiaceae in Germany).</abcd:Text>
</abcd:Citation>
</abcd:Citations>
</abcd:IPRStatements>
</abcd:Metadata>
<abcd:Units>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6239</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Stockholm 1877-1889, Vol. 1-26</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Mesotaeniaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Zygnematales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Ancylonema nordenskiöldii</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Date>
<abcd:DateText>1878-07-18</abcd:DateText>
</abcd:Date>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6239.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1878<abcd:DateText>1878</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Brixdal</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>NO</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordfjord</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08107; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3397</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1872-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3397.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1872<abcd:DateText>1872</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Reichenberg</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Dresden</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">bei Reichenberg, see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8186; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-2483</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium turgidum Bréb. 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 32: 8</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium turgidum (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium turgidum p. 110, tab. 32: 8; taxon citation: invalidly published as A. turgidum (Bréb.) Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100 - p.395, fig.21; Validation by R?ži?ka & Pouzar 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: 13 - 66 p.60</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Pleurotaenium turgidum De Bary 1858</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>De Bary, A: Untersuchungen über die Familie der Conjugaten (Zygnemeen und Desmidieen)., Leipzig 1858</abcd:TitleCitation>
<abcd:CitationDetail>p. 91</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 75, tab. 5: 31; invalidly published</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:LocalityText language="DE">Neukirch</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Chemnitz</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">Oberlausitz, Neukirch</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 7474; Specimen Location: HBG. together with Closterium hybridum, Pl. truncatum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4603</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus octocornis var. major Roy & Biss. 1894</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Notes>see label</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/4602.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8773; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6764</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium curtum var. attenuatum (Bréb.) Teil. ex Ruzicka & Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium attenuatum p. 110, tab. 17: 9; taxon citation: Teiling, E., 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Not., Lund, 1954, p. 391, fig. 2; invaldly published; Validation: Ruzicka, J., & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung ActinotaeniumTEIL. - Folia geobot. Phytotax., Praha, 13: 33-66., p.47</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium attenuatum Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 17: 9a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>1898<abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rogers,</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Ennepetal-Milspe</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordrhein-Westfalen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Hagen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE">an einer Felsenwand</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08307; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3698</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Lund 1896-1903, Vol. 27-34</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium palangula (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21; taxon citation: Ruzicka, J. & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.46</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium palangula Brébisson in Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1898-07-06</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3690-3703.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1898<abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Pico da Cruz</abcd:LocalityText>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Africa</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8328; Specimen Location: HBG. sample contains: Cosmarium ralfsii var. azoricum, Cosmarium palangula, Cosmarium pyramidatum, Cosmarium venustum, Euastru didelta f. scorbiculata, Staurastrum muticum var. depressum, Staurastrum scabrum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4569</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Die Algen Europa's (Fortsetzung der Algen Sachsens, resp. Mittel-Europa's)., Dresden 1861 - 1879, Vol. Dec. 101 - 259</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus convergens (Ehrenberg ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d; taxon citation: Teiling, E., 1948: Staurodesmus, genus novum.Containing monospinous desmids. - Bot. Not., Lund, 1948: p. 57</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus convergens Ehrenberg ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rostock, M.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Dretschen</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Bautzen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN">peat bog</abcd:Name>
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8751; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-7071</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Kryptogamae exsiccatae editae a museo hist. natur. vindobonensi., Wien 1894 ff</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus quadricaudatus</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Bombay</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>IN</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Bombay</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Asia</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08385; Specimen Location: B. sample contains: Cosmarium nitidulum, Arthrodesmus quadricaudatus</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6250</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus incus (Brébisson ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 4 as Arthrodesmus incus; taxon citation: Teiling, E., 1967: The desmid genus Staurodesmus. A taxonomic study. Ark. f. Bot. II, 6(11), p. p. 511, tab. 5: 9</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus incus (Bréb.) Hassall ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1889-08-08</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 118, tab. 20: 4a-l</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>1889<abcd:DateText>1889</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Väddö</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>SE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Upland</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Väddö</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 32088; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6897</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1883-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6897-6899.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1883<abcd:DateText>1883</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08358; Specimen Location: B. sample contains: Cosmarium cucurbita, Euastrum didelta, Closterium intermedium</abcd:Notes>
</abcd:Unit>
</abcd:Units>
</abcd:DataSet>
</abcd:DataSets>
</biocase:content>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">Datasource wrapper AlgenEngels requested</biocase:diagnostic>
<biocase:diagnostic severity="INFO">Reading PSF from C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">PSF: PSF=C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml, recLimit=0, loglevel=40, user=WebUser, database=AlgenEngels, dbIP=, dbms=odbc_tsql, encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06': <biocase.wrapper.psf_handler.SupportedSchema instance at 0x00EB1E90>}, tablegraph=GRAPH: graph: meta, determination-taxonNames, higherTaxon-taxonNames, images-specimen, namedAreas-collectingEvent, siteFeatures-collectingEvent, specimen-determination, specimen-collectingEvent, unitReference-specimen, +++ ALIAS2TABLE: {u'collectingEvent': u'abcd_CollectingEvent', u'taxonNames': u'abcd_TaxonName', u'higherTaxon': u'abcd_HigherTaxa', u'specimen': u'abcd_Object', u'siteFeatures': u'abcd_SiteFeatureTerms', u'meta': u'metadata', u'determination': u'abcd_Determination', u'images': u'abcd_Images', u'unitReference': u'abcd_UnitReference', u'namedAreas': u'abcd_NamedAreaNames'}</biocase:diagnostic>
</biocase:diagnostics>
</biocase:response>
</pre>
7c1d41bef46e3c01b3f116734091cd69dc75bd97
94
93
2011-06-30T11:05:01Z
JoergHoletschek
3
wikitext
text/x-wiki
This page shows a sample response ABCD2 document for a web service with 77 concepts mapped. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees.
<pre>
<?xml version='1.0' encoding='UTF-8'?>
<biocase:response xmlns:abcd="http://www.tdwg.org/schemas/abcd/2.06" xmlns:biocase="http://www.biocase.org/schemas/protocol/1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.biocase.org/schemas/protocol/1.3 http://www.bgbm.org/biodivinf/schema/protocol_1_31.xsd">
<!-- XML generated by BioCASE PyWrapper software version 2.6.0. Made in Berlin. -->
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
<biocase:content recordCount="10" recordDropped="0" recordStart="0" totalSearchHits="11">
<abcd:DataSets>
<abcd:DataSet>
<abcd:TechnicalContacts>
<abcd:TechnicalContact>
<abcd:Name>Botanic Garden and Botanical Museum Berlin-Dahlem</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Address>Königin-Luise-Str. 6-8, D-14195 Berlin</abcd:Address>
</abcd:TechnicalContact>
</abcd:TechnicalContacts>
<abcd:ContentContacts>
<abcd:ContentContact>
<abcd:Name>Dr. ...</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Phone>+49 ...</abcd:Phone>
<abcd:Address>..., D-22609 Hamburg</abcd:Address>
</abcd:ContentContact>
</abcd:ContentContacts>
<abcd:Metadata>
<abcd:Description>
<abcd:Representation abcd:language="EN">
<abcd:Title>Desmidiaceae Engels</abcd:Title>
<abcd:Details>A new record of reference material of the Desmidiaceae of Germany was compiled, using the databank “Specify”. Aim of the project was to summarize and digitalize the data of the dried and otherwise preserved specimens stored in the German herbaria as well as of the living strains, cultured in culture collections. Many of the references are completed by figures of the labels or by scanned micrographs from preparations for the light- or scanning microscopes.</abcd:Details>
<abcd:URI>http://www.gbif.de/botanik/projekte/desmidiaceae_hamburg_ffm/index_html</abcd:URI>
</abcd:Representation>
</abcd:Description>
<abcd:IconURI>http://ww3.bgbm.org/providerResources/BzF.jpg</abcd:IconURI>
<abcd:RevisionData>
<abcd:Creators>Desmidiaceae Engels (BzF)</abcd:Creators>
<abcd:DateModified>2008-01-23T00:00:00</abcd:DateModified>
</abcd:RevisionData>
<abcd:Owners>
<abcd:Owner>
<abcd:Organisation>
<abcd:Name>
<abcd:Representation abcd:language="EN">
<abcd:Text>Biozentrum Klein-Flottbek, Universität Hamburg</abcd:Text>
<abcd:Abbreviation>BzF</abcd:Abbreviation>
</abcd:Representation>
</abcd:Name>
</abcd:Organisation>
</abcd:Owner>
</abcd:Owners>
<abcd:IPRStatements>
<abcd:IPRDeclarations>
<abcd:IPRDeclaration abcd:language="EN">
<abcd:Text>The Intellectual Property Rights are held by the legal owner or, in case of living persons, by the collector or determinator.</abcd:Text>
</abcd:IPRDeclaration>
</abcd:IPRDeclarations>
<abcd:Copyrights>
<abcd:Copyright abcd:language="EN">
<abcd:Text>No part of this data base may be copied or reproduced without written permission from the legal owner.</abcd:Text>
</abcd:Copyright>
</abcd:Copyrights>
<abcd:TermsOfUseStatements>
<abcd:TermsOfUse abcd:language="EN">
<abcd:Text>The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The database or part of it may only be used or copied by the written permission from the legal owner. If used for publication, we ask for a copy or an off-print.</abcd:Text>
</abcd:TermsOfUse>
</abcd:TermsOfUseStatements>
<abcd:Disclaimers>
<abcd:Disclaimer abcd:language="EN">
<abcd:Text>No responsibility is accepted for the accuracy of the information in this database.</abcd:Text>
</abcd:Disclaimer>
</abcd:Disclaimers>
<abcd:Acknowledgements>
<abcd:Acknowledgement abcd:language="EN">
<abcd:Text>The authors are much indebted to the Scientists of the Informatics Biodiversity Research Center der University of Kansas, USA (http://www.specifysoftware.org), who developed the ?Specify?-Software. Many thanks also to the curators of different Herbaria: Dr. Regine Jahn (BGBM, FU-Berlin), Dr. Dagmar Triebel (Botanische Staatssammlung München), Dr. Monika Steinhof (Übersee Museum Bremen), Christian Blümel (Universität Rostock) and Dr. Christian Printzen (Forschungsinstitut Senckenberg Frankfurt a.M.). Last not least thanks to the busy co-workers Sebastian Frerichmann, Maas Mollenhauer, Constanze Kovaci and Petra Kretschmann.</abcd:Text>
</abcd:Acknowledgement>
</abcd:Acknowledgements>
<abcd:Citations>
<abcd:Citation abcd:language="EN">
<abcd:Text>Engels, Monika 2003 - (continuously updated) Catalogus novus et amplificatus speciminum et viventium algarum Desmidiacearum (New and extended catalogue of herbarium specimen and living material of Desmidiaceae in Germany).</abcd:Text>
</abcd:Citation>
</abcd:Citations>
</abcd:IPRStatements>
</abcd:Metadata>
<abcd:Units>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6239</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Stockholm 1877-1889, Vol. 1-26</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Mesotaeniaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Zygnematales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Ancylonema nordenskiöldii</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Date>
<abcd:DateText>1878-07-18</abcd:DateText>
</abcd:Date>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6239.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1878<abcd:DateText>1878</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Brixdal</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>NO</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordfjord</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08107; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3397</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1872-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3397.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1872<abcd:DateText>1872</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Reichenberg</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Dresden</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">bei Reichenberg, see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8186; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-2483</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium turgidum Bréb. 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 32: 8</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium turgidum (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium turgidum p. 110, tab. 32: 8; taxon citation: invalidly published as A. turgidum (Bréb.) Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100 - p.395, fig.21; Validation by R?ži?ka & Pouzar 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: 13 - 66 p.60</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Pleurotaenium turgidum De Bary 1858</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>De Bary, A: Untersuchungen über die Familie der Conjugaten (Zygnemeen und Desmidieen)., Leipzig 1858</abcd:TitleCitation>
<abcd:CitationDetail>p. 91</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 75, tab. 5: 31; invalidly published</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:LocalityText language="DE">Neukirch</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Chemnitz</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">Oberlausitz, Neukirch</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 7474; Specimen Location: HBG. together with Closterium hybridum, Pl. truncatum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4603</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus octocornis var. major Roy & Biss. 1894</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Notes>see label</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/4602.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8773; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6764</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium curtum var. attenuatum (Bréb.) Teil. ex Ruzicka & Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium attenuatum p. 110, tab. 17: 9; taxon citation: Teiling, E., 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Not., Lund, 1954, p. 391, fig. 2; invaldly published; Validation: Ruzicka, J., & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung ActinotaeniumTEIL. - Folia geobot. Phytotax., Praha, 13: 33-66., p.47</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium attenuatum Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 17: 9a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>1898<abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rogers,</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Ennepetal-Milspe</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordrhein-Westfalen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Hagen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE">an einer Felsenwand</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08307; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3698</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Lund 1896-1903, Vol. 27-34</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium palangula (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21; taxon citation: Ruzicka, J. & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.46</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium palangula Brébisson in Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1898-07-06</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3690-3703.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1898<abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Pico da Cruz</abcd:LocalityText>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Africa</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8328; Specimen Location: HBG. sample contains: Cosmarium ralfsii var. azoricum, Cosmarium palangula, Cosmarium pyramidatum, Cosmarium venustum, Euastru didelta f. scorbiculata, Staurastrum muticum var. depressum, Staurastrum scabrum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4569</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Die Algen Europa's (Fortsetzung der Algen Sachsens, resp. Mittel-Europa's)., Dresden 1861 - 1879, Vol. Dec. 101 - 259</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus convergens (Ehrenberg ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d; taxon citation: Teiling, E., 1948: Staurodesmus, genus novum.Containing monospinous desmids. - Bot. Not., Lund, 1948: p. 57</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus convergens Ehrenberg ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rostock, M.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Dretschen</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Bautzen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN">peat bog</abcd:Name>
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8751; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-7071</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Kryptogamae exsiccatae editae a museo hist. natur. vindobonensi., Wien 1894 ff</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus quadricaudatus</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Bombay</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>IN</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Bombay</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Asia</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08385; Specimen Location: B. sample contains: Cosmarium nitidulum, Arthrodesmus quadricaudatus</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6250</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus incus (Brébisson ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 4 as Arthrodesmus incus; taxon citation: Teiling, E., 1967: The desmid genus Staurodesmus. A taxonomic study. Ark. f. Bot. II, 6(11), p. p. 511, tab. 5: 9</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus incus (Bréb.) Hassall ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1889-08-08</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 118, tab. 20: 4a-l</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>1889<abcd:DateText>1889</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Väddö</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>SE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Upland</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Väddö</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 32088; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6897</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1883-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6897-6899.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1883<abcd:DateText>1883</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08358; Specimen Location: B. sample contains: Cosmarium cucurbita, Euastrum didelta, Closterium intermedium</abcd:Notes>
</abcd:Unit>
</abcd:Units>
</abcd:DataSet>
</abcd:DataSets>
</biocase:content>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">Datasource wrapper AlgenEngels requested</biocase:diagnostic>
<biocase:diagnostic severity="INFO">Reading PSF from C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">PSF: PSF=C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml, recLimit=0, loglevel=40, user=WebUser, database=AlgenEngels, dbIP=, dbms=odbc_tsql, encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06': <biocase.wrapper.psf_handler.SupportedSchema instance at 0x00EB1E90>}, tablegraph=GRAPH: graph: meta, determination-taxonNames, higherTaxon-taxonNames, images-specimen, namedAreas-collectingEvent, siteFeatures-collectingEvent, specimen-determination, specimen-collectingEvent, unitReference-specimen, +++ ALIAS2TABLE: {u'collectingEvent': u'abcd_CollectingEvent', u'taxonNames': u'abcd_TaxonName', u'higherTaxon': u'abcd_HigherTaxa', u'specimen': u'abcd_Object', u'siteFeatures': u'abcd_SiteFeatureTerms', u'meta': u'metadata', u'determination': u'abcd_Determination', u'images': u'abcd_Images', u'unitReference': u'abcd_UnitReference', u'namedAreas': u'abcd_NamedAreaNames'}</biocase:diagnostic>
</biocase:diagnostics>
</biocase:response>
</pre>
06956a2fd3c335048f252cec52d96d602af29dee
Debugging
0
41
95
2011-06-30T14:55:49Z
JoergHoletschek
3
Created page with "This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, pl..."
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
== Opening the Query Form ==
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page:
In the mapping editor, the button <small>Test mapping!</test> will open the Query Form in a separate tab:
== Basic Usage ==
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, flora being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
(Bild)
The usage of the Query Form is very straight forward:
• Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
• Edit the request parameters;
• Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation: http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
== Changing the Debug Level for a Data Source ==
Debug info can be set to one of four levels for a BioCASe data source:
• <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
• <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
• <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
• <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default Info level should be sufficient for testing and debugging a web service. For production use, you should set it to Error later. You can do this in the configuration of a datasource under Settings:
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ==
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
Bild
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
6e7087a1956d92c371b8806c1c2bbe03dbc91df4
96
95
2011-06-30T14:57:35Z
JoergHoletschek
3
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page:
In the mapping editor, the button <small>Test mapping!</test> will open the Query Form in a separate tab:
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, flora being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
(Bild)
The usage of the Query Form is very straight forward:
• Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
• Edit the request parameters;
• Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation: http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
• <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
• <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
• <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
• <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default Info level should be sufficient for testing and debugging a web service. For production use, you should set it to Error later. You can do this in the configuration of a datasource under Settings:
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
Bild
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
567c72ed94af7aecdbff4a5ff44056c655d95333
97
96
2011-06-30T15:01:30Z
JoergHoletschek
3
/* Debugging a BioCASe Web Service */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page:
[[File:debugDatasourceLinklist.png]]
In the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, flora being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
(Bild)
The usage of the Query Form is very straight forward:
• Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
• Edit the request parameters;
• Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation: http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
• <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
• <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
• <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
• <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default Info level should be sufficient for testing and debugging a web service. For production use, you should set it to Error later. You can do this in the configuration of a datasource under Settings:
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
Bild
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
a6f421ad76852dea433db9a62f9bb3250ce87cb6
File:DebugDatasourceEntryPage.png
6
42
98
2011-06-30T15:03:19Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DebugDatasourceLinklist.png
6
43
99
2011-06-30T15:03:31Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AbcdMappingEditorEmptyTop.png
6
44
100
2011-06-30T15:03:46Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Debugging
0
41
101
97
2011-06-30T15:05:05Z
JoergHoletschek
3
/* Opening the Query Form */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, flora being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
(Bild)
The usage of the Query Form is very straight forward:
• Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
• Edit the request parameters;
• Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation: http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
• <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
• <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
• <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
• <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default Info level should be sufficient for testing and debugging a web service. For production use, you should set it to Error later. You can do this in the configuration of a datasource under Settings:
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
Bild
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
58d90060e253a5b649471e59fd1577aba7249836
102
101
2011-06-30T15:07:06Z
JoergHoletschek
3
/* Basic Usage */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
• <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
• <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
• <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
• <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default Info level should be sufficient for testing and debugging a web service. For production use, you should set it to Error later. You can do this in the configuration of a datasource under Settings:
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
Bild
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
ce6403607b2a4260e69640cfd212d6a44e224485
104
102
2011-06-30T15:19:02Z
JoergHoletschek
3
/* Changing the Debug Level for a Data Source */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
Bild
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
9f0160bdfce6f67791f9555f5fecb3f022373f38
105
104
2011-06-30T15:19:15Z
JoergHoletschek
3
/* Debugging a BioCASe Installation */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
c1b42d7681d5032807f0a60cbc0a4ecf660c7a0a
106
105
2011-06-30T15:20:18Z
JoergHoletschek
3
/* Changing the Debug Level for a Data Source */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
• the complexity of the query (especially the filters),
• the size of the dataset returned,
• the debug level set (“debug” results in very exhaustive debug output),
• the performance of the servers running BioCASe and the database,
• the network bandwidth.
(bild)
The response document consists of three sections. A full response document can be found here.
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
975f631174c4d9ae00b473202495fd12e25e6813
108
106
2011-06-30T15:23:33Z
JoergHoletschek
3
/* Analyzing the Response Document */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
Capabilities: Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
Scan: The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664"><biocase:scan><biocase:value>Achillea atrata L.</biocase:value><biocase:value>Achillea millefolium L.</biocase:value><biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value><biocase:value>Achillea ptarmica L.</biocase:value><biocase:value>Acinos alpinus (L.) Moench</biocase:value><biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value><biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value><biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value><biocase:value>Aconitum napellus L. s.l.</biocase:value>
Search: For this type of request, the content consists of the ABCD dataset(s). See the ABCD2 example.
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to Info (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
3e92e99cbd6bd366a821fd47f806bef4303ae489
110
108
2011-06-30T15:41:07Z
JoergHoletschek
3
/* Analyzing the Response Document */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
3f48a4478e5be1afb26707d7e793e07a7d0ea393
111
110
2011-06-30T15:42:02Z
JoergHoletschek
3
/* Debug Output */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters in your provider_setup_file.xml.
</biocase:diagnostic>
Well… just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the Libs test page in Utilities).
<biocase:diagnostic severity="INFO">Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06</biocase:diagnostic><biocase:diagnostic severity="INFO">Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'</biocase:diagnostic><biocase:diagnostic severity="ERROR">The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could not be interpreted.</biocase:diagnostic>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<biocase:diagnostic severity="ERROR">The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts</biocase:diagnostic>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<biocase:diagnostic severity="ERROR">A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation, metadata.supplier_email, …, unit.febnr, unit.nameautor, unit.url_gbild, unit.datum1, unit.sammler, unit.fundort, unit.hoehe, metadata.id, unit.id FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk) WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<biocase:diagnostic severity="WARNING">The mandatory child element SourceInstitutionID could not be created [0 existing, but 1 required]. The element /DataSets/DataSet/Units/Unit was also dropped.</biocase:diagnostic><biocase:diagnostic severity="WARNING">The mandatory child element Units could not be created [0 existing, but 1 required]. The element /DataSets/DataSet was also dropped.</biocase:diagnostic>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element was either not mapped or empty; therefore the respective record (“unit”) was dropped. Because this happened for all units in the datasets, all units were dropped, resulting in an empty Units sub tree. The second warning tells you what happened then: Because the Units element is mandatory for the Dataset element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
8d2a56a8bb5a2396403b800f1ea7eef1108a59cc
112
111
2011-06-30T15:48:48Z
JoergHoletschek
3
/* Sample Errors and Warnings in the Debug Output */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set Debug logs to True:
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the log folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
bf055aa247417393603563213c136b372a091a37
113
112
2011-06-30T15:49:52Z
JoergHoletschek
3
/* Debugging a BioCASe Installation */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>:
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
c45de2177c84f43b23b964577ac7acac8da8ef28
114
113
2011-06-30T15:53:14Z
JoergHoletschek
3
/* Debugging a BioCASe Installation */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straight forward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
a47d5a756b06b2c06f4c86ed9a4b3295d6c73c10
115
114
2011-06-30T15:55:54Z
JoergHoletschek
3
/* Basic Usage */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Debug Output ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
425f95d619d3d181451a0febe7060ca50ab16f13
116
115
2011-07-04T10:14:07Z
JoergHoletschek
3
/* Debug Output */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please contact the __BioCASe Team__.
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, contact the __BioCASe Team__.
c07a73f3cf3bee1cec0b06296af46a97f8c97e22
136
116
2011-07-18T13:04:03Z
JoergHoletschek
3
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[contact the BioCASe team]].
8acb20467998efd85028343eab391064c711fa05
File:DebugQueryformFull.png
6
45
103
2011-06-30T15:07:29Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DebugDatasourceSettings.png
6
46
107
2011-06-30T15:20:28Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DebugResponseDocumentOverview.png
6
47
109
2011-06-30T15:23:44Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Glossary
0
48
117
2011-07-13T12:05:35Z
JoergHoletschek
3
Created page with "= Glossary and Used Abbreviations = ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases..."
wikitext
text/x-wiki
= Glossary and Used Abbreviations =
ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar. See ___xxx___ for more information on how to set up a BioCASe Web Service.
BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (search.biocase.de/botany), one for the biodiversity of Europe (search.biocase.org/europe) and one for global occurrence data (search.biocase.org/edit).
BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ‘’Capabilities’’ for introspecting the configuration of a BioCASe web service, ‘’Scan’’ for getting the distinctive values for a concept provided by the web service, and ‘’Search’’ for retrieving the full set of information published for certain records.
BioCASe Request: See BioCASe Protocol.
BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
BPS: BioCASe Provider Software; also called PyWrapper.
Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
DBMS: Database Management System.
Debugging: The iterative process of testing, finding and correcting errors.
Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
Firewall: Usually one device or a combination of several devices shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (data.gbif.org).
Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying one (!) BioCASe web service.
Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
Python: Platform independent programming language used for the BioCASe Provider Software.
PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from ‘’Python Wrapper’’. Sort of ‘’wraps’’ around the database to be published, exposing the data as a BioCASe compliant web service.
Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See ___Installation#Download___).
Wrapper: In the BioCASe context a synonym for PyWrapper.
9efc010912163f252bb596f6f3187fb8ffba617b
118
117
2011-07-13T12:09:05Z
JoergHoletschek
3
/* Glossary and Used Abbreviations */
wikitext
text/x-wiki
= Glossary and Used Abbreviations =
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar. See ___xxx___ for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (search.biocase.de/botany), one for the biodiversity of Europe (search.biocase.org/europe) and one for global occurrence data (search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ‘’Capabilities’’ for introspecting the configuration of a BioCASe web service, ‘’Scan’’ for getting the distinctive values for a concept provided by the web service, and ‘’Search’’ for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device or a combination of several devices shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (data.gbif.org).
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying one (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from ‘’Python Wrapper’’. Sort of ‘’wraps’’ around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See ___Installation#Download___).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
e5e1ba31d205b0e5dbe471cd5bacc235aba4671e
119
118
2011-07-13T12:13:17Z
JoergHoletschek
3
/* Glossary and Used Abbreviations */
wikitext
text/x-wiki
= Glossary and Used Abbreviations =
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar. See [[DatasourceSetup]] for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (search.biocase.de/botany), one for the biodiversity of Europe (search.biocase.org/europe) and one for global occurrence data (search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ‘’Capabilities’’ for introspecting the configuration of a BioCASe web service, ‘’Scan’’ for getting the distinctive values for a concept provided by the web service, and ‘’Search’’ for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device or a combination of several devices shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (data.gbif.org).
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying one (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from ‘’Python Wrapper’’. Sort of ‘’wraps’’ around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See [[Installation#Downloading from the Subversion Repository]]).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
de46d34e4b7c6e0157e201285b5d6da12d1ad420
120
119
2011-07-13T12:16:56Z
JoergHoletschek
3
/* Glossary and Used Abbreviations */
wikitext
text/x-wiki
= Glossary and Used Abbreviations =
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar. See [[DatasourceSetup]] for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (http://search.biocase.de/botany), one for the biodiversity of Europe (http://search.biocase.org/europe) and one for global occurrence data (http://search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ''Capabilities'' for introspecting the configuration of a BioCASe web service, ''Scan'' for getting the distinctive values for a concept provided by the web service, and ''Search'' for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device or a combination of several devices shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (http://data.gbif.org).
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying '''one''' (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from "Python Wrapper". Sort of "wraps" around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See [[Installation#Downloading from the Subversion Repository]]).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
d7eab7efec4006c9e8ce3caafb3de01f64b8051e
121
120
2011-07-13T12:19:24Z
JoergHoletschek
3
/* Glossary and Used Abbreviations */
wikitext
text/x-wiki
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar. See [[DatasourceSetup]] for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (http://search.biocase.de/botany), one for the biodiversity of Europe (http://search.biocase.org/europe) and one for global occurrence data (http://search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ''Capabilities'' for introspecting the configuration of a BioCASe web service, ''Scan'' for getting the distinctive values for a concept provided by the web service, and ''Search'' for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device or a combination of several devices shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (http://data.gbif.org).
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying '''one''' (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from "Python Wrapper". Sort of "wraps" around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See [[Installation#Downloading from the Subversion Repository]]).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
5950172cdc334ef8918325520d980418314a1349
BeginnersGuide
0
49
122
2011-07-18T12:38:10Z
JoergHoletschek
3
Created page with "==What is the BioCASe Provider Software?== The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information netwo..."
wikitext
text/x-wiki
==What is the BioCASe Provider Software?==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the __BioCASe network__ and the __Global Biodiversity Information Facility__.
==Requirements for Using the BPS==
Before using the BioCASe Provider Software, two requirements need to be checked:
• For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
• For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you (contact the ___BioCASe Team___ if you feel unsafe with your decision), you need to do the following steps:
Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should not be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
Prepare the database for publication as described in the __prepatation tutorial__. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
Follow the __Installation Tutorial__ to install the BioCASe Provider Software.
Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the __Datasource Setup Tutorial__.
Follow the ABCD Mapping Tutorial to create a mapping for the schema you want to use.
Test and debug your BioCASe web service. Read the __Debugging Tutorial__ to learn how to do this.
Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with __GBIF__. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
• have a look at the FAQ which might list the solution for your question,
• ask other BioCASe data providers for help,
• get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
b4a94b79194e9685f44d04391193d8999d965559
123
122
2011-07-18T12:40:35Z
JoergHoletschek
3
/* What is the BioCASe Provider Software? */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
==Requirements for Using the BPS==
Before using the BioCASe Provider Software, two requirements need to be checked:
• For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
• For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you (contact the ___BioCASe Team___ if you feel unsafe with your decision), you need to do the following steps:
Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should not be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
Prepare the database for publication as described in the __prepatation tutorial__. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
Follow the __Installation Tutorial__ to install the BioCASe Provider Software.
Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the __Datasource Setup Tutorial__.
Follow the ABCD Mapping Tutorial to create a mapping for the schema you want to use.
Test and debug your BioCASe web service. Read the __Debugging Tutorial__ to learn how to do this.
Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with __GBIF__. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
• have a look at the FAQ which might list the solution for your question,
• ask other BioCASe data providers for help,
• get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
353786e8f24b7ea114ee24d0ba792eaa5443e3e1
124
123
2011-07-18T12:41:27Z
JoergHoletschek
3
/* Requirements for Using the BPS */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you (contact the ___BioCASe Team___ if you feel unsafe with your decision), you need to do the following steps:
Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should not be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
Prepare the database for publication as described in the __prepatation tutorial__. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
Follow the __Installation Tutorial__ to install the BioCASe Provider Software.
Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the __Datasource Setup Tutorial__.
Follow the ABCD Mapping Tutorial to create a mapping for the schema you want to use.
Test and debug your BioCASe web service. Read the __Debugging Tutorial__ to learn how to do this.
Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with __GBIF__. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
• have a look at the FAQ which might list the solution for your question,
• ask other BioCASe data providers for help,
• get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
c4c5b927b0779ada2d6593b5707bbf892224225d
125
124
2011-07-18T12:42:55Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you (contact the ___BioCASe Team___ if you feel unsafe with your decision), you need to do the following steps:
* Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
* Prepare the database for publication as described in the __prepatation tutorial__. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
* Follow the __Installation Tutorial__ to install the BioCASe Provider Software.
* Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the __Datasource Setup Tutorial__.
* Follow the ABCD Mapping Tutorial to create a mapping for the schema you want to use.
* Test and debug your BioCASe web service. Read the __Debugging Tutorial__ to learn how to do this.
Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with __GBIF__. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
d7bf31cc01d4a10099741f3da6a93dbea677bfd6
126
125
2011-07-18T12:46:29Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you (contact the ___BioCASe Team___ if you feel unsafe with your decision), you need to do the following steps:
* Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
* Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
* Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
* Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
* Follow the [[ABCD2Mapping] tutorial to create a mapping for the schema you want to use.
* Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with __GBIF__. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
1dfad648fa3c1bd846ddfe2e0fa2df220fd97a82
127
126
2011-07-18T12:49:38Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you (contact the ___BioCASe Team___ if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [[http://www.gbif.org GBIF]]. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
ffb99cc59dbcd3fad23568b8b4533ec2b4f7e016
128
127
2011-07-18T12:49:55Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you (contact the ___BioCASe Team___ if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
65b38a1f106bb5806e98e72dd5c521c49a244bf2
132
128
2011-07-18T12:55:23Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to ask the __BioCASe Team__ for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the __BioCASe Team__. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
f4ac7b057226a63eda26e21df5736b5bd7d8c222
133
132
2011-07-18T12:56:43Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[contact the BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
a4c2e68c75b26e39d2cc5c37f4dcecdf8c0b1f78
134
133
2011-07-18T12:59:48Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
==Steps==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[contact the BioCASe team|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
3b6dbe45dac8df9c7a0c0daf65357fa76abed7a2
135
134
2011-07-18T13:00:57Z
JoergHoletschek
3
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[contact the BioCASe team|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
b92d3a9e9de88abb1e9c91b07a3b8b6bdfb07d9e
Preparation
0
17
137
55
2011-07-18T13:05:25Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata are information that describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[contact the BioCASe team]].
655a1a8199d48b4736c6e5a33edc2f1a16342f90
VersionHistory
0
23
138
60
2011-07-18T13:06:48Z
JoergHoletschek
3
/* Version 2.5.4 [2010-09-14, withdrawn] */
wikitext
text/x-wiki
== Version 2 History ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c20ac9b909b1b95d5c8811537d49eff86dcf11c2
DatasourceSetup
0
24
139
73
2011-07-18T13:11:39Z
JoergHoletschek
3
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>:
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the __Debug guide__ about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
75d234449657d86c3a7a350bcb8f37643d529271
144
139
2011-07-18T15:05:15Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>:
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
15acc97f70ffb4bf972bbe017db1d34bc77dd675
Installation
0
6
140
40
2011-07-18T13:15:29Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the ___FAQs___ or get in [[Contact the BioCASe team|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
5409392d95b05d9064f6ec4f709d1fb93a1c487b
143
140
2011-07-18T15:04:03Z
JoergHoletschek
3
/* Requirements */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e.g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Contact the BioCASe team|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
e37a6560b283ee9c409c0e135ee6d1d0e4ef7418
FAQ
0
52
141
2011-07-18T15:01:48Z
JoergHoletschek
3
Created page with "FAQ"
wikitext
text/x-wiki
FAQ
03688ba6aa340b87549088aa5739944cb6b1dc73
151
141
2011-07-21T09:54:40Z
JoergHoletschek
3
wikitext
text/x-wiki
== General ==
What is the BioCASe Provider Software and what can I use it for?
See the Beginner’s Guide.
When can I use the BioCASe Provider Software?
See the requirements in the Beginner’s Guide.
I’m not sure whether the Provider Software is the right choice for me. How do I find out?
Just contact us and describe your situation and what you’re planning to use BioCASe for.
How much is the BioCASe Provider Software?
It’s Open Source Software, so you can use it for free.
Can I use the Provider Software on my operating system?
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
I cannot meet all of the requirements for installing the BPS. What options do I have?
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
I’ve forgot the password of my BioCASe installation. What should I do?
Just go to the config folder of your installation and have a look into the file config.ini.
I get a nice pink “A problem occurred in a Python script” error. What’s wrong?
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then contact the BioCASe team.
I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.
Just contact us; we’ll try our best to help you.
I have some recommendations/bug report. How can I file it?
You can either leave a message on the comments page or get directly in contact with us.
== Installation ==
I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
When typing in the URL for my new installation (http://localhost/biocase ), I get an empty page or a “URL not found” error. What’s wrong?
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section “Linking BioCASe and Your Web Server” of the Installation guide and follow the instructions.
When typing in the URL for my new installation (http://localhost/biocase), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections “Installing Apache/IIS and Python” and “Running the Setup Script” in the Installation guide).
I cannot find the installation package for the DBMS and the Python version I am using.
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
I’ve installed the Python package for my DBMS, but it doesn’t show up in the “Test libs” page. What’s wrong?
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled Graphviz dot binary. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press update config to save the path.
I want to update my BioCASe installation. How do I do this?
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the config folder of your old installation: config.ini for the system settings and all folders in the datasources directory.
== Debugging ==
I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press Save to retry connecting. Then see the log files (in the log folder of your biocase installation) for more detailed error messages.
The information that can be found in the log files folder is too sparse – what can I do?
Turn on debugging in the System Administration.
How do I find out if my BioCASe web service works right?
Use the Query Form to send a BioCASe request to your web server and check the result document (see the Debugging guide and the Sample ABCD document for more).
I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ww3.bgbm.org).
0fd6b2779745e20520836c55050633fbe5756627
152
151
2011-07-21T09:57:18Z
JoergHoletschek
3
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the Beginner’s Guide.
===When can I use the BioCASe Provider Software?===
See the requirements in the Beginner’s Guide.
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the config folder of your installation and have a look into the file config.ini.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then contact the BioCASe team.
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just contact us; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the comments page or get directly in contact with us.
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (http://localhost/biocase ), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section “Linking BioCASe and Your Web Server” of the Installation guide and follow the instructions.
===When typing in the URL for my new installation (http://localhost/biocase), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections “Installing Apache/IIS and Python” and “Running the Setup Script” in the Installation guide).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the “Test libs” page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
vI’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled Graphviz dot binary. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press update config to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the config folder of your old installation: config.ini for the system settings and all folders in the datasources directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press Save to retry connecting. Then see the log files (in the log folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the Debugging guide and the Sample ABCD document for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ww3.bgbm.org).
f61c81d21af19f6fa038776356ceb1d4987fc8f4
153
152
2011-07-21T10:04:06Z
JoergHoletschek
3
/* General */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the comments page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (http://localhost/biocase ), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section “Linking BioCASe and Your Web Server” of the Installation guide and follow the instructions.
===When typing in the URL for my new installation (http://localhost/biocase), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections “Installing Apache/IIS and Python” and “Running the Setup Script” in the Installation guide).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the “Test libs” page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
vI’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled Graphviz dot binary. On Linux machines it might look similar to the default (/usr/local/bin/dot), on Windows machines it will be probably something like C:\Program Files\Graphviz2.26.3\bin\dot.exe. Press update config to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the config folder of your old installation: config.ini for the system settings and all folders in the datasources directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press Save to retry connecting. Then see the log files (in the log folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the Debugging guide and the Sample ABCD document for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ww3.bgbm.org).
ba28d6d61e0581d2cc1a30c465d42cd9c87335f4
154
153
2011-07-21T10:16:28Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the comments page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small>to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press Save to retry connecting. Then see the log files (in the log folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the Debugging guide and the Sample ABCD document for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ww3.bgbm.org).
4e39a11a13982b986590831554e0add0036e1565
155
154
2011-07-21T10:18:51Z
JoergHoletschek
3
/* Debugging */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the comments page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small>to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
53e9446c32cef889eac2ffb2d60b1690b2be9207
156
155
2011-07-21T10:24:51Z
JoergHoletschek
3
/* I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page. */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the comments page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
f800470179776acad33b204723fbb47e1ed0aa64
158
156
2011-07-21T10:44:02Z
JoergHoletschek
3
/* I have some recommendations/bug report. How can I file it? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the [[Comments]] page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
385134242b42a6f12b59635e7c3026386a9cec27
ABCD2Mapping
0
29
142
92
2011-07-18T15:03:09Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier must not be the primary key, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<pre>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/
TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</pre>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
64dc1c89e891ba2e2a919a69cad0f227d6de7437
File:Support.png
6
53
147
2011-07-18T15:34:33Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Main Page
0
1
160
10
2011-07-21T11:06:28Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCase homepage].
[[File:BioCASeLogoLarge.jpg]]
67dbc98d557bb49e7a530c7a9e2270bd9f51c3fe
Main Page
0
1
161
160
2011-07-21T11:06:48Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[File:BioCASeLogoLarge.jpg]]
b8b5cbf52805175e27249fd18a68d2fb7730bcde
163
161
2011-07-21T11:12:12Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
[[Image:BioCASeLogoLarge.jpg|right|BioCASe]]This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
5cc463d51ccf1384a61fce6b1cf674793ed5c6e8
164
163
2011-07-21T11:18:33Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
0dfd20a2d7541bff6efd04c2b929d30c1740af95
165
164
2011-07-21T11:21:22Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== Table of Contents ==
[[BeginnersGuide|'''Beginner's Guide:''']] What the Provider Software is all about.
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
[[BeginnersGuide|'''Beginner's Guide:''']]
cc03e9636caaba3be193e8ddcc76602c7bd98a2b
166
165
2011-07-21T11:43:22Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== Feedback ==
If you have comments on the Provider Software, want to file a bug report or leave a suggestion for a useful new feature, please use the [[Comments|Comments page]] or [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|CommonABCD2Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
6be350315af0f68021c24c82b215b16e4a8d2676
167
166
2011-07-21T11:45:11Z
JoergHoletschek
3
/* Feedback */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
If you have comments on the Provider Software, want to file a bug report or leave a suggestion for a useful new feature, please use the [[Comments|Comments page]]. For getting help on BioCASe, please [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|CommonABCD2Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
f9a396f1bf5a17b9931a38889f0a1aef9ff4d879
168
167
2011-07-21T11:46:04Z
JoergHoletschek
3
/* Table of Contents */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
If you have comments on the Provider Software, want to file a bug report or leave a suggestion for a useful new feature, please use the [[Comments|Comments page]]. For getting help on BioCASe, please [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
fea97aa4b1a52851b78fcdae700cc2ccb65cae0b
172
168
2011-07-21T13:43:12Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:support_stamp.png|200px|right|BioCASe Support]]If you have comments on the Provider Software, want to file a bug report or leave a suggestion for a useful new feature, please use the [[Comments|Comments page]]. For getting help on BioCASe, please [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
fda4a950b501ac5ebbf331226f3ae474a67d9c47
174
172
2011-07-21T13:51:59Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
If you have comments on the Provider Software, want to file a bug report or leave a suggestion for a useful new feature, please use the [[Comments|Comments page]]. For getting help on BioCASe, please [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
67b81ded59cc5d046502e6d9e975dd1333cece55
175
174
2011-07-21T13:53:59Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
If you have questions, comments, want to file a bug report or leave a suggestion for a useful new feature, you can
* use the [[Comments|Comments page]] to leave a comment, or
* [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]] directly.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
770fe4cc8c9f11533cbeef3f6e18bb02441c4b29
176
175
2011-07-21T13:55:20Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
If you have questions, comments, want to file a bug report or leave a suggestion for a useful new feature, you can
* use the [[Comments|Comments page]] to leave a comment, or
* [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]] directly.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
f21c96b658d053a132acf0632c3b5a8cf5f7abc8
178
176
2011-07-21T13:56:17Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_Team|150px|right|BioCASe Support]]
If you have questions, comments, want to file a bug report or leave a suggestion for a useful new feature, you can
* use the [[Comments|Comments page]] to leave a comment, or
* [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]] directly.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
7febb2ab0c8c9037dfa07968ffd6322aa05f8353
179
178
2011-07-21T14:00:33Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_Team|150px|right|BioCASe Support]]
You can use the [[Comments|Comments page]] to just leave us a comment. If you want us to reply to your feedback, you should [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]] directly. Please do so if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
73dca82abe2e722964ab2417dd89d06cb0c749c8
180
179
2011-07-21T14:00:44Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_Team|150px|left|BioCASe Support]]
You can use the [[Comments|Comments page]] to just leave us a comment. If you want us to reply to your feedback, you should [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]] directly. Please do so if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
825e45bc9cc650c72fcd8253a2ef229620847ec6
181
180
2011-07-21T14:01:17Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_Team|150px|right|BioCASe Support]]
You can use the [[Comments|Comments page]] to just leave us a comment. If you want us to reply to your feedback, you should [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]] directly. Please do so if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
73dca82abe2e722964ab2417dd89d06cb0c749c8
182
181
2011-07-21T14:01:38Z
JoergHoletschek
3
/* Welcome to the Documentation Wiki of the BioCASe Provider Software */
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|left|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_Team|150px|right|BioCASe Support]]
You can use the [[Comments|Comments page]] to just leave us a comment. If you want us to reply to your feedback, you should [[Contact_the_BioCASe_Team|get in contact with the BioCASe Team]] directly. Please do so if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_Team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
bcfea20ca719c0e65ff7ddb18f87d4990344b5f6
183
182
2011-07-21T14:08:23Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|200px|left|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_team|150px|right|BioCASe Support]]
You can use the [[Comments|Comments page]] to just leave us a comment. If you want us to reply to your feedback, you should [[Contact_the_BioCASe_team|get in contact with the BioCASe Team]] directly. Please do so if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
6218e96bac565eb48164026427e236e0d736993f
200
183
2011-07-21T15:23:18Z
JoergHoletschek
3
wikitext
text/x-wiki
= Welcome to the Documentation Wiki of the BioCASe Provider Software =
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_team|150px|right|BioCASe Support]]
You can use the [[Comments|Comments page]] to just leave us a comment. If you want us to reply to your feedback, you should [[Contact_the_BioCASe_team|get in contact with the BioCASe Team]] directly. Please do so if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
f1e27cf1acbfabdc897ba6bb348c177ba9b249fe
File:BioCASeLogoLarge.jpg
6
55
162
2011-07-21T11:07:17Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
DatasourceSetup
0
24
169
144
2011-07-21T12:49:36Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a vanilla installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
7e4a2f5472f0c035d9b97a73cb6e4d214d5b8d97
Preparation
0
17
170
137
2011-07-21T13:28:26Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-self collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script the will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[contact the BioCASe team]].
c0a1e48845dabf2a2cdbef00404290df90b6cf6e
171
170
2011-07-21T13:29:01Z
JoergHoletschek
3
/* Controlled Denormalisation */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-shelf collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script they will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[contact the BioCASe team]].
cfdce5a88bc967cf60c8bd0c1448b9a8b2363ff1
File:Support stamp.png
6
56
173
2011-07-21T13:43:28Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Mail.png
6
57
177
2011-07-21T13:55:30Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Sidebar
8
3
184
3
2011-07-21T14:53:08Z
JoergHoletschek
3
wikitext
text/x-wiki
* SEARCH
* navigation
** mainpage|mainpage-description
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* TOOLBOX
* LANGUAGES
7d3ff6f052916aa7c5094baa9cbec59303c60d99
185
184
2011-07-21T14:56:54Z
JoergHoletschek
3
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* SEARCH
* TOOLBOX
* LANGUAGES
3815dfdeba7a9affe9eeda9aa612a0c227e89ce5
186
185
2011-07-21T14:59:31Z
JoergHoletschek
3
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* SEARCH
* TOOLBOX
* LANGUAGES
f6bd0c797f209a03a36f251edd3ee8cd3888107f
187
186
2011-07-21T15:02:03Z
JoergHoletschek
3
wikitext
text/x-wiki
* navigation
** BeginnersGuide|Beginner's Guide
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
** mainpage|mainpage-description
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* SEARCH
* TOOLBOX
* LANGUAGES
3f7cde89c96e92ecc22eec12b9d8c5085121ee43
188
187
2011-07-21T15:02:53Z
JoergHoletschek
3
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* SEARCH
* TOOLBOX
* LANGUAGES
5f4927a8fda9c93c377069cd466391c810b3e09d
189
188
2011-07-21T15:04:40Z
JoergHoletschek
3
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** ABCD2Concepts|ABCD2 Concepts
** SampleABCDDocument|Sample ABCD2 Document
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
** VersionHistory|Version History
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* SEARCH
* TOOLBOX
* LANGUAGES
10f9e6804f22326fa240aac5762347a995a886cf
190
189
2011-07-21T15:05:06Z
JoergHoletschek
3
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** ABCD2Concepts|ABCD2 Concepts
** SampleABCDDocument|ABCD2 Sample
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
** VersionHistory|Version History
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** mediawikiwiki:Help:Contents|help
* SEARCH
* TOOLBOX
* LANGUAGES
0dd071947989e492db951cc534727a17d3a0314b
191
190
2011-07-21T15:05:54Z
JoergHoletschek
3
wikitext
text/x-wiki
* navigation
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* SEARCH
* TOOLBOX
d4715803e78b038f37cfc6a83d8ef1453d7f993d
192
191
2011-07-21T15:13:13Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* SEARCH
* TOOLBOX
0852cbb5c7a95583081d8676641ff7d43ac40a65
193
192
2011-07-21T15:14:24Z
JoergHoletschek
3
wikitext
text/x-wiki
* mainpage|mainpage-description
* Table of Contents
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* SEARCH
* TOOLBOX
ec05eba8a4add3dd412aee45efdfe6792ae52d0d
194
193
2011-07-21T15:15:10Z
JoergHoletschek
3
wikitext
text/x-wiki
* Main_Page|Main Page
* Table of Contents
* mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* SEARCH
* TOOLBOX
e7dc66b5cdd87e8bd26c01c8b726f98cd40d2abc
195
194
2011-07-21T15:16:41Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* SEARCH
* TOOLBOX
a9793b707477e2bae75b99156c84b3e443221fb2
196
195
2011-07-21T15:17:43Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* Contact
** Comments|Comments Page
** Contact_the_BioCASe_team|Contact us
* SEARCH
* TOOLBOX
a90e438f48be829db05ed29519f67f958096d453
197
196
2011-07-21T15:21:17Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Contact
** Comments|Comments Page
** Contact_the_BioCASe_team|Contact us
* SEARCH
* TOOLBOX
69fa95607248b31cbc857912ec4aaa8bfd253c6a
199
197
2011-07-21T15:22:49Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD2 Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Comments|Comments Page
** Contact_the_BioCASe_team|Contact us
* SEARCH
* TOOLBOX
184922ff308e48613577fd83e16b3d5e6ff9a805
201
199
2011-07-21T15:24:47Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Comments|Comments Page
** Contact_the_BioCASe_team|Contact us
* SEARCH
* TOOLBOX
e9fed23395b830a9699dafbb4a26f15731f96f1d
202
201
2011-07-21T15:55:06Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Comments|Comments Page
** Contact_the_BioCASe_team|Contact us
* SEARCH
868d6da8f6e26e1c231c07a8672b8bd1bee24132
203
202
2011-07-21T15:55:32Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Comments|Comments Page
** Contact_the_BioCASe_team|Contact us
a668c340fe74afc2088e976516b822b0f5de59e9
BeginnersGuide
0
49
198
135
2011-07-21T15:22:04Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the FAQ which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[contact the BioCASe team|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
ed814302e6923aa8e8e0d0b4322349ba273abdc4
205
198
2011-08-01T09:05:47Z
JoergHoletschek
3
/* Support */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[contact the BioCASe team|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
a629a882cbc042e45dd7740dcf7113675edd191e
ABCD2Mapping
0
29
204
142
2011-07-21T16:05:42Z
JoergHoletschek
3
/* The Mapping Editor */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<pre>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/
TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</pre>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
22c8980762b1b53bb1bec7ae8a1461a11b087c61
FAQ
0
52
206
158
2011-08-01T09:09:06Z
JoergHoletschek
3
/* General */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the [[Comments]] page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
a94b2eea49595b818ba8403e1c1ee18263ea7f66
207
206
2011-08-02T08:52:13Z
JoergHoletschek
3
/* Debugging */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the [[Comments]] page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
b4afa92b1cd85ac4f2e3f2d96a7da55906d3d1c2
209
207
2011-08-04T08:37:50Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the [[Comments]] page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
42b9a70b8ffeb3123ddb24bfcd1c21ab4344b2fd
VersionHistory
0
23
208
138
2011-08-03T16:27:01Z
JoergHoletschek
3
/* Version 2.6.1 [upcoming] */
wikitext
text/x-wiki
== Version 2 History ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
23974f51a727b7e9797c44d199a5df723c807f1c
Installation
0
6
210
143
2011-08-05T11:36:12Z
192.168.2.133
0
small test
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Contact the BioCASe team|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
4a5a42effcba7ba6f0d6f671a4b06ca6b8813ecc
Talk:Installation
1
58
211
2011-08-05T11:38:11Z
192.168.2.133
0
page created
wikitext
text/x-wiki
If you have questions, post them here.
515816eb14ac3ced1b2c5937c02cc2fa777e9378
238
211
2011-08-09T11:56:18Z
JoergHoletschek
3
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
MediaWiki:Common.css
8
2
212
2
2011-08-08T15:52:49Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
body.ns-subject h1.firstHeading { display:none; }
/* Hide toolbox */
#p-tb{ display:none;}
b8feaf58373c830b05ad288c4bf18bdc6ee0b406
213
212
2011-08-08T15:54:13Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Hide toolbox */
#p-tb{ display:none;}
ba699c7a3b60f8587787997b070867f28568ed16
214
213
2011-08-08T16:16:28Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
b9178525d6b01416c47ec5281a3393c4070e965c
Main Page
0
1
215
200
2011-08-09T10:25:27Z
JoergHoletschek
3
wikitext
text/x-wiki
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_team|150px|right|BioCASe Support]]
You can use the [[Comments|Comments page]] to just leave us a comment. If you want us to reply to your feedback, you should [[Contact_the_BioCASe_team|get in contact with the BioCASe Team]] directly. Please do so if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
5325680dd98369461b4876c6aaa313e19692b166
225
215
2011-08-09T11:19:39Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Contact_the_BioCASe_team|150px|right|BioCASe Support]]
Please get in contact with the BioCASe Support if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
You can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the from on the [[Contact_the_BioCASe_team|Contact page]] to send us a message,
* or directly mail us to the address given on the [[Contact_the_BioCASe_team|Contact page]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
45be6b7306e592c464d059045072cf34d9e1447f
247
225
2011-08-09T12:06:29Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Special:Contact|150px|right|BioCASe Support]]
Please get in contact with the BioCASe Support if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
You can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the from on the [[Special:Contact|Contact page]] to send us a message,
* or directly mail us to the address given on the [[Special:Contact|Contact page]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
4c35608b87fd0d1d22f2947038f6550b88016bcb
261
247
2011-08-11T09:20:01Z
JoergHoletschek
3
/* BioCASe Support */
wikitext
text/x-wiki
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Special:Contact|150px|right|BioCASe Support]]
Please get in contact with the BioCASe Support if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
You can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the form on the [[Special:Contact|Contact page]] to send us a message,
* or directly mail us to the address given on the [[Special:Contact|Contact page]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Contact_the_BioCASe_team|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
e1a9757c695b6969cb83c3a3806a37c740fd5f48
Template:Discussion
10
59
216
2011-08-09T10:46:39Z
JoergHoletschek
3
Created page with "Please use this discussion page for * submitting comments to other users or to the developers of the Provider Software, * suggesting features for future versions of the Provider..."
wikitext
text/x-wiki
Please use this discussion page for
* submitting comments to other users or to the developers of the Provider Software,
* suggesting features for future versions of the Provider Software
* reporting bugs you've encountered,
* any other hints you might have.
Of course you can also [[Contact the BioCASe team]] directly.
----
7a34a4bafcf9d56888ca63c037755fcc0ef8b139
217
216
2011-08-09T10:47:00Z
JoergHoletschek
3
wikitext
text/x-wiki
Please use this discussion page for
* submitting comments to other users or to the developers of the Provider Software,
* suggesting features for future versions of the Provider Software,
* reporting bugs you've encountered,
* any other hints you might have.
Of course you can also [[Contact the BioCASe team]] directly.
----
1488280255444bcc454c4f55926db2b236096a31
218
217
2011-08-09T10:47:18Z
JoergHoletschek
3
wikitext
text/x-wiki
Please use this discussion page for
* submitting comments to other users or to the developers of the Provider Software,
* suggesting features for future versions of the Provider Software,
* reporting bugs you've encountered,
* any other hints you might have.
Of course you can also [[contact the BioCASe team]] directly.
----
32b019601e4bd4f3909a15aefa6bc6e698aad8a3
220
218
2011-08-09T10:48:43Z
JoergHoletschek
3
wikitext
text/x-wiki
Please use this discussion page for
* submitting comments to other users or to the developers of the Provider Software,
* suggesting features for future versions of the Provider Software,
* reporting bugs you've encountered,
* any other hints you might have.
Of course you can also [[contact the BioCASe team]] directly.
ae02e8a6641307bd1f17da63f9cf654c889f0773
233
220
2011-08-09T11:44:13Z
JoergHoletschek
3
wikitext
text/x-wiki
Please use this discussion page for
* submitting comments to other users or to the developers of the Provider Software,
* suggesting features for future versions of the Provider Software,
* reporting bugs you've encountered,
* any other hints you might have.
Of course you can also [[Special:Contact|contact the BioCASe team]] directly.
c183c27a01e543f2e431c70efb166f49a8afedb3
257
233
2011-08-10T08:22:35Z
JoergHoletschek
3
wikitext
text/x-wiki
Please use this discussion page for
* submitting comments to other users or to the developers of the Provider Software,
* suggesting features for future versions of the Provider Software,
* reporting bugs you've encountered,
* any other hints you might have.
Click "Edit" on top of this page to leave your comment.<br>Of course you can also [[Special:Contact|contact the BioCASe team]] directly.
e457d0956a17ff893d849cb38b67c2c365c0066b
Talk:Main Page
1
60
219
2011-08-09T10:47:45Z
JoergHoletschek
3
Created page with "{{Template:Discussion}}"
wikitext
text/x-wiki
{{Template:Discussion}}
524dd381e0c2a8e7c25f04a08993e3cc71d7189a
221
219
2011-08-09T10:49:39Z
JoergHoletschek
3
wikitext
text/x-wiki
{{Template:Discussion}}
Please don't remove this template and add your comments below this line.
----
888e4d32d434b800a78aec518600d01ec07cb2f3
222
221
2011-08-09T10:51:17Z
JoergHoletschek
3
wikitext
text/x-wiki
{{Template:Discussion}}
Please don't remove this template and add your comments below this line.
----
;Short Description of your comment: Please write your comment here.
3e12c6a3c54978c5fadb90a134f15d6fc448252e
223
222
2011-08-09T11:01:48Z
JoergHoletschek
3
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please don't remove this template and add your comments below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
6caa82cedd1dce61e1ba7f1ac97ee2c4191c6847
224
223
2011-08-09T11:13:09Z
JoergHoletschek
3
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
231
224
2011-08-09T11:42:42Z
192.168.2.130
0
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
test
ee061cb45c7dd3f32e72c32a3be357afbdcff645
232
231
2011-08-09T11:43:10Z
192.168.2.130
0
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
258
232
2011-08-10T08:36:09Z
192.168.2.130
0
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
test
ee061cb45c7dd3f32e72c32a3be357afbdcff645
259
258
2011-08-10T08:37:27Z
JoergHoletschek
3
Reverted edits by [[Special:Contributions/192.168.2.130|192.168.2.130]] ([[User talk:192.168.2.130|talk]]) to last revision by [[User:JoergHoletschek|JoergHoletschek]]
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
MediaWiki:Contactpage-pagetext
8
61
227
2011-08-09T11:32:45Z
JoergHoletschek
3
Created page with "If you have questions, comments, bug reports or suggestions for new features of the Provider Software, you can either * use the ''Discussion'' tab of each page to leave us a com..."
wikitext
text/x-wiki
If you have questions, comments, bug reports or suggestions for new features of the Provider Software, you can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the from below to send us a message,
* or directly mail us at [[File:support.png]].
In case you want to submit a bug report, please make sure to gather the following information when the error occurs:
* your environment (operating system, web server, database management system),
* the version of BioCASe you're running (can be found at the top of the BioCASe start page),
* the steps that lead to the problem,
* any error messages printed on screen (screenshots are a big plus),
* any error or debug output that can be found in the logging files of the Provider Software (can be found in the ''log'' directory of your BioCASe installation) or in the log files of your web server.
0fc57b7681a6932bbfd9884c24a24e48d439e0e2
234
227
2011-08-09T11:48:02Z
JoergHoletschek
3
wikitext
text/x-wiki
[[Image:mail.png|link=Contact_the_BioCASe_team|150px|right|BioCASe Support]]If you have questions, comments, bug reports or suggestions for new features of the Provider Software, you can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the from below to send us a message,
* or directly mail us at [[File:support.png]].
In case you want to submit a bug report, please make sure to gather the following information when the error occurs:
* your environment (operating system, web server, database management system),
* the version of BioCASe you're running (can be found at the top of the BioCASe start page),
* the steps that lead to the problem,
* any error messages printed on screen (screenshots are a big plus),
* any error or debug output that can be found in the logging files of the Provider Software (can be found in the ''log'' directory of your BioCASe installation) or in the log files of your web server.
54588b007990a524064fd55792d39b50c3b6a4f3
235
234
2011-08-09T11:48:25Z
JoergHoletschek
3
wikitext
text/x-wiki
[[Image:mail.png|link=Contact_the_BioCASe_team|150px|right|BioCASe Support]]If you have questions, comments, bug reports or suggestions for new features of the Provider Software, you can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the from below to send us a message,
* or directly mail us at [[File:support.png]].
'''In case you want to submit a bug report, please make sure to gather the following information when the error occurs:'''
* your environment (operating system, web server, database management system),
* the version of BioCASe you're running (can be found at the top of the BioCASe start page),
* the steps that lead to the problem,
* any error messages printed on screen (screenshots are a big plus),
* any error or debug output that can be found in the logging files of the Provider Software (can be found in the ''log'' directory of your BioCASe installation) or in the log files of your web server.
713bf2302f23805a00c7df2840d8e2b126986cfc
MediaWiki:Sidebar
8
3
228
203
2011-08-09T11:40:55Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Comments|Comments Page
** [[Special:Contact]]|Contact us
8240e4307706b6aae01a83dda9d29d6fc52a3ac2
229
228
2011-08-09T11:41:16Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Comments|Comments Page
** Special:Contact|Contact us
85342895985a61e2998b4e4904cd6f0db7fe4f21
230
229
2011-08-09T11:41:39Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Special:Contact|Contact Us
ceb03c75cf2e5ceff21edfc1c27c8aaca493697a
Talk:BeginnersGuide
1
62
236
2011-08-09T11:55:21Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:Preparation
1
63
237
2011-08-09T11:55:45Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:DatasourceSetup
1
64
239
2011-08-09T11:56:28Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:ABCD2Mapping
1
65
240
2011-08-09T11:56:39Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:Debugging
1
66
241
2011-08-09T11:56:53Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:Glossary
1
67
242
2011-08-09T11:57:01Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:FAQ
1
68
243
2011-08-09T11:57:14Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:CommonABCD2Concepts
1
69
244
2011-08-09T11:57:22Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:SampleABCDDocument
1
70
245
2011-08-09T11:57:31Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
Talk:VersionHistory
1
71
246
2011-08-09T11:58:25Z
JoergHoletschek
3
Created page with "{{Template:Discussion}} <!--Please add your comment below this line. --> -------------------------------------------------------------------------------- ;Short Description of y..."
wikitext
text/x-wiki
{{Template:Discussion}}
<!--Please add your comment below this line. -->
--------------------------------------------------------------------------------
;Short Description of your comment: Please write your comment here.
437b5ff4194e1283c0fc47af38be723a243b420e
BeginnersGuide
0
49
248
205
2011-08-09T12:07:12Z
JoergHoletschek
3
/* Support */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
1ee5e29b7f3d25e788ffde6e3ee47d48b269887e
251
248
2011-08-09T12:15:00Z
JoergHoletschek
3
/* Steps */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
c96922d3423a0dcb14de44b7584c70760b1e2ffb
Preparation
0
17
249
171
2011-08-09T12:07:47Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-shelf collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script they will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[Special:Contact|contact the BioCASe team]].
e958d081a094462f73a15fa76a631e2eeb9a390e
Installation
0
6
250
210
2011-08-09T12:08:23Z
JoergHoletschek
3
/* Requirements */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in (in case Python is not found, you’ll have to add the full path name to the Python executable):<pre>python setup.py</pre>Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
32d59c1f1298539ffb5f9da94bac6a73d58b30ad
Debugging
0
41
252
136
2011-08-09T12:17:54Z
JoergHoletschek
3
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<pre>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</pre>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
cd913e69b96767c7121d27b995620ee02ec78c10
FAQ
0
52
253
209
2011-08-09T12:18:34Z
JoergHoletschek
3
/* I get a nice pink “A problem occurred in a Python script” error. What’s wrong? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[contact the BioCASe team|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the [[Comments]] page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
5330edeb878a1beb398b8cd7b153d78ff80fa95d
254
253
2011-08-09T12:18:51Z
JoergHoletschek
3
/* I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me. */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the [[Comments]] page or get directly in [[contact the BioCASe team|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
838872b58507bbde449a033f3ebcc4e1806a10f9
255
254
2011-08-09T12:19:52Z
JoergHoletschek
3
/* I have some recommendations/bug report. How can I file it? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might just found a bag. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
0919cde49fc3345ef2b2106d9e956c88c8fc1965
MediaWiki:Print.css
8
72
256
2011-08-09T15:09:12Z
JoergHoletschek
3
Created page with "/* CSS placed here will affect the print output */ #BreadCrumbsTrail { display:none; } #firstHeading { margin-top: 20px; }"
css
text/css
/* CSS placed here will affect the print output */
#BreadCrumbsTrail {
display:none;
}
#firstHeading {
margin-top: 20px;
}
9d3dc61ce3e17979693be282fd9163be4d824164
VersionHistory
0
23
260
208
2011-08-11T08:41:17Z
JoergHoletschek
3
/* Version 2.6.1 [upcoming] */
wikitext
text/x-wiki
== Version 2 History ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4858eefdef2c4ed78790c4ddc7b83ed198034228
MediaWiki:Contactpage-pagetext
8
61
262
235
2011-08-11T09:21:47Z
JoergHoletschek
3
wikitext
text/x-wiki
[[Image:mail.png|150px|right|BioCASe Support]]If you have questions, comments, bug reports or suggestions for new features of the Provider Software, you can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the from below to send us a message,
* or directly mail us at [[File:support.png]].
'''In case you want to submit a bug report, please make sure to gather the following information when the error occurs:'''
* your environment (operating system, web server, database management system),
* the version of BioCASe you're running (can be found at the top of the BioCASe start page),
* the steps that lead to the problem,
* any error messages printed on screen (screenshots are a big plus),
* any error or debug output that can be found in the logging files of the Provider Software (can be found in the ''log'' directory of your BioCASe installation) or in the log files of your web server.
ae2166a98404fa61a09f45d273f1b42613cf7e55
264
262
2011-08-11T09:26:10Z
JoergHoletschek
3
wikitext
text/x-wiki
[[Image:mail.png|150px|right|BioCASe Support]]If you have questions, comments, bug reports or suggestions for new features of the Provider Software, you can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the form below to send us a message,
* or mail us directly at [[File:support.png]].
'''In case you want to submit a bug report, please make sure to gather the following information when the error occurs:'''
* your environment (operating system, web server, database management system),
* the version of BioCASe you're running (can be found at the top of the BioCASe start page),
* the steps that caused the problem,
* any error messages printed on screen (screenshots are a big plus),
* any error or debug output that can be found in the logging files of the Provider Software (can be found in the ''log'' directory of your BioCASe installation) or in the log files of your web server.
80427c985766970ad57753e330c04e8468a05eba
Main Page
0
1
263
261
2011-08-11T09:23:39Z
JoergHoletschek
3
/* Table of Contents */
wikitext
text/x-wiki
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Special:Contact|150px|right|BioCASe Support]]
Please get in contact with the BioCASe Support if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
You can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the form on the [[Special:Contact|Contact page]] to send us a message,
* or directly mail us to the address given on the [[Special:Contact|Contact page]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Special:Contact|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
707e947fd05c6995b39f7768c7e7443d7a8faff3
MediaWiki:Common.css
8
2
265
214
2011-08-11T10:15:35Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
/*#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}*/
#BreadCrumbsTrail {
margin-bottom: -30px;
position: absolute;
top: 5px;
}
#firstHeading {
margin-top: 20px;
}
82694d05e72693e5ddbe1ae20aa57713917932fb
266
265
2011-08-11T10:17:21Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
/*#BreadCrumbsTrail {
margin-bottom: -30px;
position: absolute;
top: 5px;
}*/
#firstHeading {
margin-top: 20px;
}
154772a1d461a7a43c5ec5d626dcbb18c2566d48
270
266
2011-08-11T12:36:17Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
div.mw-geshi {
/*damit die Codebox so aussieht, wie im Monobook*/
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
/*Scrollbalken, falls der Text zu breit ist# overflow:auto; damit der Code unabhängig von der Skin gleich groß angezeigt wird
font-size: 10pt;*/
}
1391e73e9b04877972e4850709eac5cc88416cb3
271
270
2011-08-11T12:37:48Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
div.mw-geshi {
/*damit die Codebox so aussieht, wie im Monobook*/
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
/*Scrollbalken, falls der Text zu breit ist*/
# overflow:auto; /*damit der Code unabhängig von der Skin gleich groß angezeigt wird
font-size: 10pt;*/
}
4b57f5d5afc4e9ec039ec5a97dfd7c6469dec3f9
272
271
2011-08-11T12:38:44Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
div.mw-geshi {
/*damit die Codebox so aussieht, wie im Monobook*/
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
/*Scrollbalken, falls der Text zu breit ist*/
#overflow:auto; /*damit der Code unabhängig von der Skin gleich groß angezeigt wird
font-size: 10pt;*/
}
32d9f01221d73ecfc3fc161d8b751622a685cbb5
273
272
2011-08-11T12:39:47Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
/* Codeboxen */
div.mw-geshi {
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
#overflow:auto;
}
854eceeee3d04779a14a81b07909928ebdbc7292
274
273
2011-08-11T12:41:06Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
/* Codeboxen */
div.mw-geshi {
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
overflow:auto;
}
912d8ec44ddc7533162db7c9b59fc4e884c84cab
275
274
2011-08-11T12:42:12Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
/* Codeboxen */
div.mw-geshi {
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
overflow:auto;
font-size: 10pt;
}
19432b3383ee1e57979a1d5120b249cfaf7f1e83
FAQ
0
52
267
255
2011-08-11T11:38:53Z
JoergHoletschek
3
/* I get a nice pink “A problem occurred in a Python script” error. What’s wrong? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
54653ad99bfac566da2383ca80f56e9ba7d79bb0
291
267
2011-08-15T11:57:29Z
JoergHoletschek
3
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
29ee2616640b8b01f5e16720d0a6aaf5489690bd
292
291
2011-08-15T11:58:38Z
JoergHoletschek
3
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
ccac12920803665cf0ae80d3df69d6b90022db94
293
292
2011-08-15T12:16:47Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that tells me a Python settings file (sitecustomize.py) will be changed. Unfortunately, on my installation there is no such file in that location; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
b091fdbe2cf78ed6828c3f9cebfdb9e88993f5dd
294
293
2011-08-15T12:17:27Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that tells me a Python settings file (sitecustomize.py) will be changed. Unfortunately, on my installation there is no such file in that location; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
2c8b23d04293260315a92f401c192a0e86974a39
295
294
2011-08-15T12:22:22Z
JoergHoletschek
3
/* In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that tells me a Python settings file (sitecustomize.py) will be changed. Unfortunately, on my installation the
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
21093b8d445a1d5b84caa3f32a207ec69ce5a179
296
295
2011-08-15T12:23:43Z
JoergHoletschek
3
/* In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===When can I use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
982f5c4fc64981dfeeb8cf0a5ce107744357f0ab
ABCD2Mapping
0
29
268
204
2011-08-11T12:34:04Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/
TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
248d3ff66f90dc9ba247529eb8f5873d2d1746b2
269
268
2011-08-11T12:35:03Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
fc65d4c4d1765241e1bac0a68856c860b5208fc1
Debugging
0
41
276
252
2011-08-11T12:44:09Z
JoergHoletschek
3
/* Header */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<pre>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</pre>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
70094ca0116cfe4535319f0a7ff52975772c8343
277
276
2011-08-11T12:44:30Z
JoergHoletschek
3
/* Content */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<pre>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</pre>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
9842a9f4c5cfe0fb56ce25b65c7cc08805a4a1f4
278
277
2011-08-11T12:44:46Z
JoergHoletschek
3
/* Diagnostics (Debug Output) */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>},
tablegraph=GRAPH: graph: unit-metadata, +++ ALIAS2TABLE:
{u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
c0cbe6caaabba3fe669d851b74ea6ab830dc4459
279
278
2011-08-11T12:47:59Z
JoergHoletschek
3
/* Diagnostics (Debug Output) */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<pre>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</pre>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<pre>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</pre>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<pre>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</pre>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<pre>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</pre>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<pre>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</pre>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
2e4a2db3fd5ce04a237017c5bdaa18eae04fd171
280
279
2011-08-11T12:48:43Z
JoergHoletschek
3
/* Sample Errors and Warnings in the Debug Output */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
155468c4a02b049a220568c518899d1381264cb0
281
280
2011-08-11T12:49:24Z
JoergHoletschek
3
/* Sample Errors and Warnings in the Debug Output */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
1c50233629e38c3ae03eeb0befee92dae277ab26
283
281
2011-08-11T12:51:50Z
JoergHoletschek
3
/* Diagnostics (Debug Output) */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
718bc36029557a8132eae55289485765a0f4cd4b
SampleABCDDocument
0
40
282
94
2011-08-11T12:50:24Z
JoergHoletschek
3
wikitext
text/x-wiki
This page shows a sample response ABCD2 document for a web service with 77 concepts mapped. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees.
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<biocase:response xmlns:abcd="http://www.tdwg.org/schemas/abcd/2.06" xmlns:biocase="http://www.biocase.org/schemas/protocol/1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.biocase.org/schemas/protocol/1.3 http://www.bgbm.org/biodivinf/schema/protocol_1_31.xsd">
<!-- XML generated by BioCASE PyWrapper software version 2.6.0. Made in Berlin. -->
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
<biocase:content recordCount="10" recordDropped="0" recordStart="0" totalSearchHits="11">
<abcd:DataSets>
<abcd:DataSet>
<abcd:TechnicalContacts>
<abcd:TechnicalContact>
<abcd:Name>Botanic Garden and Botanical Museum Berlin-Dahlem</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Address>Königin-Luise-Str. 6-8, D-14195 Berlin</abcd:Address>
</abcd:TechnicalContact>
</abcd:TechnicalContacts>
<abcd:ContentContacts>
<abcd:ContentContact>
<abcd:Name>Dr. ...</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Phone>+49 ...</abcd:Phone>
<abcd:Address>..., D-22609 Hamburg</abcd:Address>
</abcd:ContentContact>
</abcd:ContentContacts>
<abcd:Metadata>
<abcd:Description>
<abcd:Representation abcd:language="EN">
<abcd:Title>Desmidiaceae Engels</abcd:Title>
<abcd:Details>A new record of reference material of the Desmidiaceae of Germany was compiled, using the databank “Specify”. Aim of the project was to summarize and digitalize the data of the dried and otherwise preserved specimens stored in the German herbaria as well as of the living strains, cultured in culture collections. Many of the references are completed by figures of the labels or by scanned micrographs from preparations for the light- or scanning microscopes.</abcd:Details>
<abcd:URI>http://www.gbif.de/botanik/projekte/desmidiaceae_hamburg_ffm/index_html</abcd:URI>
</abcd:Representation>
</abcd:Description>
<abcd:IconURI>http://ww3.bgbm.org/providerResources/BzF.jpg</abcd:IconURI>
<abcd:RevisionData>
<abcd:Creators>Desmidiaceae Engels (BzF)</abcd:Creators>
<abcd:DateModified>2008-01-23T00:00:00</abcd:DateModified>
</abcd:RevisionData>
<abcd:Owners>
<abcd:Owner>
<abcd:Organisation>
<abcd:Name>
<abcd:Representation abcd:language="EN">
<abcd:Text>Biozentrum Klein-Flottbek, Universität Hamburg</abcd:Text>
<abcd:Abbreviation>BzF</abcd:Abbreviation>
</abcd:Representation>
</abcd:Name>
</abcd:Organisation>
</abcd:Owner>
</abcd:Owners>
<abcd:IPRStatements>
<abcd:IPRDeclarations>
<abcd:IPRDeclaration abcd:language="EN">
<abcd:Text>The Intellectual Property Rights are held by the legal owner or, in case of living persons, by the collector or determinator.</abcd:Text>
</abcd:IPRDeclaration>
</abcd:IPRDeclarations>
<abcd:Copyrights>
<abcd:Copyright abcd:language="EN">
<abcd:Text>No part of this data base may be copied or reproduced without written permission from the legal owner.</abcd:Text>
</abcd:Copyright>
</abcd:Copyrights>
<abcd:TermsOfUseStatements>
<abcd:TermsOfUse abcd:language="EN">
<abcd:Text>The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The database or part of it may only be used or copied by the written permission from the legal owner. If used for publication, we ask for a copy or an off-print.</abcd:Text>
</abcd:TermsOfUse>
</abcd:TermsOfUseStatements>
<abcd:Disclaimers>
<abcd:Disclaimer abcd:language="EN">
<abcd:Text>No responsibility is accepted for the accuracy of the information in this database.</abcd:Text>
</abcd:Disclaimer>
</abcd:Disclaimers>
<abcd:Acknowledgements>
<abcd:Acknowledgement abcd:language="EN">
<abcd:Text>The authors are much indebted to the Scientists of the Informatics Biodiversity Research Center der University of Kansas, USA (http://www.specifysoftware.org), who developed the ?Specify?-Software. Many thanks also to the curators of different Herbaria: Dr. Regine Jahn (BGBM, FU-Berlin), Dr. Dagmar Triebel (Botanische Staatssammlung München), Dr. Monika Steinhof (Übersee Museum Bremen), Christian Blümel (Universität Rostock) and Dr. Christian Printzen (Forschungsinstitut Senckenberg Frankfurt a.M.). Last not least thanks to the busy co-workers Sebastian Frerichmann, Maas Mollenhauer, Constanze Kovaci and Petra Kretschmann.</abcd:Text>
</abcd:Acknowledgement>
</abcd:Acknowledgements>
<abcd:Citations>
<abcd:Citation abcd:language="EN">
<abcd:Text>Engels, Monika 2003 - (continuously updated) Catalogus novus et amplificatus speciminum et viventium algarum Desmidiacearum (New and extended catalogue of herbarium specimen and living material of Desmidiaceae in Germany).</abcd:Text>
</abcd:Citation>
</abcd:Citations>
</abcd:IPRStatements>
</abcd:Metadata>
<abcd:Units>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6239</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Stockholm 1877-1889, Vol. 1-26</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Mesotaeniaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Zygnematales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Ancylonema nordenskiöldii</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Date>
<abcd:DateText>1878-07-18</abcd:DateText>
</abcd:Date>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6239.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1878<abcd:DateText>1878</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Brixdal</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>NO</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordfjord</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08107; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3397</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1872-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3397.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1872<abcd:DateText>1872</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Reichenberg</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Dresden</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">bei Reichenberg, see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8186; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-2483</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium turgidum Bréb. 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 32: 8</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium turgidum (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium turgidum p. 110, tab. 32: 8; taxon citation: invalidly published as A. turgidum (Bréb.) Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100 - p.395, fig.21; Validation by R?ži?ka & Pouzar 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: 13 - 66 p.60</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Pleurotaenium turgidum De Bary 1858</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>De Bary, A: Untersuchungen über die Familie der Conjugaten (Zygnemeen und Desmidieen)., Leipzig 1858</abcd:TitleCitation>
<abcd:CitationDetail>p. 91</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 75, tab. 5: 31; invalidly published</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:LocalityText language="DE">Neukirch</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Chemnitz</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">Oberlausitz, Neukirch</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 7474; Specimen Location: HBG. together with Closterium hybridum, Pl. truncatum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4603</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus octocornis var. major Roy & Biss. 1894</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Notes>see label</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/4602.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8773; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6764</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium curtum var. attenuatum (Bréb.) Teil. ex Ruzicka & Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium attenuatum p. 110, tab. 17: 9; taxon citation: Teiling, E., 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Not., Lund, 1954, p. 391, fig. 2; invaldly published; Validation: Ruzicka, J., & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung ActinotaeniumTEIL. - Folia geobot. Phytotax., Praha, 13: 33-66., p.47</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium attenuatum Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 17: 9a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>1898<abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rogers,</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Ennepetal-Milspe</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordrhein-Westfalen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Hagen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE">an einer Felsenwand</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08307; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3698</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Lund 1896-1903, Vol. 27-34</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium palangula (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21; taxon citation: Ruzicka, J. & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.46</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium palangula Brébisson in Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1898-07-06</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3690-3703.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1898<abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Pico da Cruz</abcd:LocalityText>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Africa</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8328; Specimen Location: HBG. sample contains: Cosmarium ralfsii var. azoricum, Cosmarium palangula, Cosmarium pyramidatum, Cosmarium venustum, Euastru didelta f. scorbiculata, Staurastrum muticum var. depressum, Staurastrum scabrum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4569</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Die Algen Europa's (Fortsetzung der Algen Sachsens, resp. Mittel-Europa's)., Dresden 1861 - 1879, Vol. Dec. 101 - 259</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus convergens (Ehrenberg ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d; taxon citation: Teiling, E., 1948: Staurodesmus, genus novum.Containing monospinous desmids. - Bot. Not., Lund, 1948: p. 57</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus convergens Ehrenberg ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rostock, M.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Dretschen</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Bautzen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN">peat bog</abcd:Name>
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8751; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-7071</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Kryptogamae exsiccatae editae a museo hist. natur. vindobonensi., Wien 1894 ff</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus quadricaudatus</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>0<abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Bombay</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>IN</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Bombay</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Asia</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08385; Specimen Location: B. sample contains: Cosmarium nitidulum, Arthrodesmus quadricaudatus</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6250</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus incus (Brébisson ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 4 as Arthrodesmus incus; taxon citation: Teiling, E., 1967: The desmid genus Staurodesmus. A taxonomic study. Ark. f. Bot. II, 6(11), p. p. 511, tab. 5: 9</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus incus (Bréb.) Hassall ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1889-08-08</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 118, tab. 20: 4a-l</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime>1889<abcd:DateText>1889</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Väddö</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>SE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Upland</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Väddö</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE" />
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 32088; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6897</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1883-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>Specimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6897-6899.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime>1883<abcd:DateText>1883</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN" />
<abcd:Text language="DE" />
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08358; Specimen Location: B. sample contains: Cosmarium cucurbita, Euastrum didelta, Closterium intermedium</abcd:Notes>
</abcd:Unit>
</abcd:Units>
</abcd:DataSet>
</abcd:DataSets>
</biocase:content>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">Datasource wrapper AlgenEngels requested</biocase:diagnostic>
<biocase:diagnostic severity="INFO">Reading PSF from C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">PSF: PSF=C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml, recLimit=0, loglevel=40, user=WebUser, database=AlgenEngels, dbIP=, dbms=odbc_tsql, encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06': <biocase.wrapper.psf_handler.SupportedSchema instance at 0x00EB1E90>}, tablegraph=GRAPH: graph: meta, determination-taxonNames, higherTaxon-taxonNames, images-specimen, namedAreas-collectingEvent, siteFeatures-collectingEvent, specimen-determination, specimen-collectingEvent, unitReference-specimen, +++ ALIAS2TABLE: {u'collectingEvent': u'abcd_CollectingEvent', u'taxonNames': u'abcd_TaxonName', u'higherTaxon': u'abcd_HigherTaxa', u'specimen': u'abcd_Object', u'siteFeatures': u'abcd_SiteFeatureTerms', u'meta': u'metadata', u'determination': u'abcd_Determination', u'images': u'abcd_Images', u'unitReference': u'abcd_UnitReference', u'namedAreas': u'abcd_NamedAreaNames'}</biocase:diagnostic>
</biocase:diagnostics>
</biocase:response>
</syntaxhighlight>
c2f6ba0ef320b5182885b6c363eb1d32aa00340b
User:DavidFichtmueller/monobook.js
2
73
284
2011-08-12T11:18:04Z
DavidFichtmueller
4
Created page with " addOnloadHook(function(){ addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","..."
javascript
text/javascript
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var mainNavigation = document.getElementById("t-specialpages").parentNode;
var specialpages= document.getElementById("t-specialpages")
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",specialpages);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-namespaces","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b");
}
}
); //closes addOnloadHook(
ec7ba17cc28a971a7fa81eb67177ac7e4fc54e90
285
284
2011-08-12T11:21:42Z
DavidFichtmueller
4
javascript
text/javascript
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var mainNavigation = document.getElementById("t-whatlinkshere").parentNode;
var specialpages= document.getElementById("t-specialpages")
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",specialpages);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-namespaces","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b");
}
}
); //closes addOnloadHook(
a37e6c3e80a5b66ecf2226854610bec2d11ef417
286
285
2011-08-12T11:22:21Z
DavidFichtmueller
4
javascript
text/javascript
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var mainNavigation = document.getElementById("t-whatlinkshere").parentNode;
var whatlinkshere= document.getElementById("t-whatlinkshere")
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",whatlinkshere);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-namespaces","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b");
}
}
); //closes addOnloadHook(
10235e5f25e563cb0ef60d4a9b5cd43c4ccec7e1
287
286
2011-08-12T11:27:42Z
DavidFichtmueller
4
javascript
text/javascript
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var mainNavigation = document.getElementById("t-whatlinkshere").parentNode;
var whatlinkshere= document.getElementById("t-whatlinkshere")
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",whatlinkshere);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-cationc","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b",document.getElementById("ca-talk").nextElementSibling);
document.getElementById("ca-talk").style.marginRight="1em";
document.getElementById("ca-contributions").style.marginRight="1.6em";
}
}
); //closes addOnloadHook(
0cfa29fcab9688286c86e40fd34bbddd115ad1b5
288
287
2011-08-12T11:29:56Z
DavidFichtmueller
4
javascript
text/javascript
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var mainNavigation = document.getElementById("t-whatlinkshere").parentNode;
var whatlinkshere= document.getElementById("t-whatlinkshere")
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",whatlinkshere);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-cactions","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b",document.getElementById("ca-talk").nextElementSibling);
document.getElementById("ca-talk").style.marginRight="0.3em";
document.getElementById("ca-contributions").style.marginRight="1.6em";
}
}
); //closes addOnloadHook(
6c5e8da39f218fc0bd0b03b8edd3b7a960ef1b43
289
288
2011-08-12T11:32:14Z
DavidFichtmueller
4
javascript
text/javascript
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var firstElement = document.getElementById("t-specialpages").firstElementChild;
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",firstElement);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-cactions","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b",document.getElementById("ca-talk").nextElementSibling);
document.getElementById("ca-talk").style.marginRight="0.3em";
document.getElementById("ca-contributions").style.marginRight="1.6em";
}
}
); //closes addOnloadHook(
ce6213161b104a93dbb4c91018657251510df5e4
290
289
2011-08-12T11:33:11Z
DavidFichtmueller
4
javascript
text/javascript
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var firstElement = document.getElementById("t-specialpages").parentNode.firstElementChild;
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",firstElement);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-cactions","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b",document.getElementById("ca-talk").nextElementSibling);
document.getElementById("ca-talk").style.marginRight="0.3em";
document.getElementById("ca-contributions").style.marginRight="1.6em";
}
}
); //closes addOnloadHook(
150752909d095bf2d9a082fc84bf81a0ee1bfe29
VersionHistory
0
23
297
260
2011-08-15T12:31:54Z
JoergHoletschek
3
/* Version 2.6.1 [upcoming] */
wikitext
text/x-wiki
== Version 2 History ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
be4f70a46a94e05765aa8226b339accbee582554
BeginnersGuide
0
49
298
251
2011-08-16T10:25:09Z
JoergHoletschek
3
/* What is the BioCASe Provider Software? */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in the Python scripting language that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server of a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
a99971b835a119818e3ecff6deec4f2d12494c98
299
298
2011-08-16T10:26:39Z
JoergHoletschek
3
/* Requirements for Using the BPS */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in the Python scripting language that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
c1d79a7aaf98ccbb4101e663154ed35d558e2655
302
299
2011-08-16T13:10:51Z
JoergHoletschek
3
/* What is the BioCASe Provider Software? */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, two requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
8107813079ac9297cb41f18f4161b472485b2536
303
302
2011-08-16T13:17:30Z
JoergHoletschek
3
/* Requirements for Using the BPS */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, three requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
* For the web server in question, you must have the possibility to install Python (if it is not installed yet) and Python packages. Even though this can be done by the IT staff, you should make sure that there are no institutional policies colliding.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
e3b2ca7c93155c3a8e8f452167008264b1f63bfa
Installation
0
6
300
250
2011-08-16T10:35:27Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given at the beginning out the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
7cbf5318a5908ea03319f1ae33c137bd1e06a14e
301
300
2011-08-16T10:36:07Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given at the beginning of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
069336ef98259e279b3ba4364703ddd4d03c338c
304
301
2011-08-16T13:20:48Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
a8160cedbf1e81c1198653423c1ffe554c2ad2f9
305
304
2011-08-16T13:22:47Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.foobar.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
32b4d0f12ee551ae434611e803d78d89fb3d447e
306
305
2011-08-16T13:25:34Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.foobar.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.foobar.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
dbb1ab22dbeeae94e1c3822ccedd307bec402605
307
306
2011-08-16T13:27:07Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output it will print the lines you will need later to create the link, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
cbfe0894f2a6e034dd6459432c3a932bb7685dcd
308
307
2011-08-16T13:30:58Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so will compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
07c9e0f522a4c08becb4fd063135d0e5622f3f2d
309
308
2011-08-16T13:31:43Z
JoergHoletschek
3
/* Linking BioCASe and Your Web Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
db1918b64bf4fc4752b9f195c3304b2970034391
310
309
2011-08-16T13:32:55Z
JoergHoletschek
3
/* Linking BioCASe and Your Web Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to he library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
47ba4ead14f81523299570ec0c56ad38915c1fe8
311
310
2011-08-16T13:34:11Z
JoergHoletschek
3
/* Installing Additional Python Packages */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the DBMS used by the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a vanilla BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
615b6702fe655e2d13826e43d78297a264597671
Installation
0
6
312
311
2011-08-16T13:36:14Z
JoergHoletschek
3
/* Installing Additional Python Packages */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries ship with the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
e235d74f8b023e86b2f722e8fe97d41ca5b198c5
313
312
2011-08-16T13:38:02Z
JoergHoletschek
3
/* Installing Additional Python Packages */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' in the browser window), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
5a7221efd72145947beb843825cfb2e0282bd252
314
313
2011-08-16T13:41:33Z
JoergHoletschek
3
/* Changing the Default Password */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown [[Installation#Linking_BioCASe_and_Your_Web_Server|here]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
e4c7e61e1d0f7af682ea32a7abf1f22fac795e10
315
314
2011-08-16T13:45:17Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
c84b59bb579ce91af8758002e93e84b5fd91d960
316
315
2011-08-16T13:45:40Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
bd8821593dafa5233774c6d8c7ba7971ab2f8a52
317
316
2011-08-16T13:46:22Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
c84b59bb579ce91af8758002e93e84b5fd91d960
318
317
2011-08-16T13:47:12Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
All of the questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Import configuration from existing installation:</strong> Not implemented yet. Sorry. But this is easy to overcome: Just keep the defaults, then copy the configuration files manually.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these three questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
23cad608aa298afeef5802a92e9e1f395276bf95
343
318
2011-08-17T10:26:20Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the configuration How To about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
502424c88847bda5045b056bea912b7db878480d
DatasourceSetup
0
24
319
169
2011-08-16T13:48:39Z
JoergHoletschek
3
/* Creating a New Data Source */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und un-remove a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
762c5aaf8011058de1a2540882628b0d1a6f26c2
320
319
2011-08-16T13:49:26Z
JoergHoletschek
3
/* Creating a New Data Source */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and hope for the connection to turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
536d67fa2c9e0972ed488b5b5ba04b7c1b82df18
323
320
2011-08-16T14:05:12Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a '''System datasource''' (!); the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
e986b16a8ad5ec522f0f9df83b4c0c613730ea36
324
323
2011-08-16T14:06:47Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connection through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
37306dff37ceb8bbc0e18e23fb6e9c653c3d80aa
325
324
2011-08-16T14:07:51Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
434da65dd240a6a6cb62e0800f826c50062d37ba
326
325
2011-08-16T14:08:26Z
JoergHoletschek
3
/* Setting up the database connection */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key(s)) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
b0f464ed7d145aae61fc3df956984d2a46ed8da3
327
326
2011-08-16T14:12:22Z
JoergHoletschek
3
/* Adding Tables/Views with their Primary Keys */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo this step (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
0aa175131c2c9a6d0cf2041a75238dbed8fc0ea0
328
327
2011-08-16T14:12:53Z
JoergHoletschek
3
/* Adding Tables/Views with their Primary Keys */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
6abe16b2ab5063dd48c5cfa7b700ed3475871fa9
329
328
2011-08-16T14:14:14Z
JoergHoletschek
3
/* Adding Tables/Views with their Primary Keys */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. '''Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed Save for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
cba99af25e09b8b5e194f7d8cdb4feeb920ebb40
330
329
2011-08-16T14:15:27Z
JoergHoletschek
3
/* Saving, Editing an Existing Setup */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database. '''Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed <small>Save</small> for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
71e861ecb6c8dad78bcc837690b2f3d3a60267c4
331
330
2011-08-16T14:16:22Z
JoergHoletschek
3
/* Adding Tables/Views with their Primary Keys */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database.<br>
'''Important Note:''' Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed <small>Save</small> for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
f1d2b67ae0c8cd49e5bdf0611b445c2229a87e8e
332
331
2011-08-16T14:16:49Z
JoergHoletschek
3
/* Adding Tables/Views with their Primary Keys */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database.<br>
'''<u>Important Note:</u>''' Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed <small>Save</small> for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
a34b839e59ab7b601296c35dcd1da72b75ad7961
Glossary
0
48
321
121
2011-08-16T13:57:09Z
JoergHoletschek
3
wikitext
text/x-wiki
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar. See [[DatasourceSetup]] for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (http://search.biocase.de/botany), one for the biodiversity of Europe (http://search.biocase.org/europe) and one for global occurrence data (http://search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ''Capabilities'' for introspecting the configuration of a BioCASe web service, ''Scan'' for getting the distinctive values for a concept provided by the web service, and ''Search'' for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device or a combination of several devices shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (http://data.gbif.org).
;Harvester: Application that retrieves all records published by a (BioCASe) web service and stores them in a local database. Harvesters are run by projects and initiatives that consume or aggregate primary biodiversity information, for example by GBIF for running the [http://data.gbif.org GBIF data portal].
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying '''one''' (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from "Python Wrapper". Sort of "wraps" around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See [[Installation#Downloading from the Subversion Repository]]).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
65d0625311af783538cbeb866c1b25214c9746da
322
321
2011-08-16T13:57:44Z
JoergHoletschek
3
wikitext
text/x-wiki
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.myinstitution.org/biocase/pywrapper.cgi?dsa=Herbar. See [[DatasourceSetup]] for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (http://search.biocase.de/botany), one for the biodiversity of Europe (http://search.biocase.org/europe) and one for global occurrence data (http://search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ''Capabilities'' for introspecting the configuration of a BioCASe web service, ''Scan'' for getting the distinctive values for a concept provided by the web service, and ''Search'' for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device or a combination of several devices shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (http://data.gbif.org).
;Harvester: Application that retrieves all records published by a (BioCASe) web service and stores them in a local database. Harvesters are run by projects and initiatives that consume or aggregate primary biodiversity information, for example by GBIF for running the [http://data.gbif.org GBIF data portal].
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying '''one''' (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from "Python Wrapper". Sort of "wraps" around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See [[Installation#Downloading from the Subversion Repository]]).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
0df3f2644ede117b99cd525a94d954199f03ebf5
333
322
2011-08-16T14:20:36Z
JoergHoletschek
3
wikitext
text/x-wiki
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.myinstitution.org/biocase/pywrapper.cgi?dsa=Herbar. See [[DatasourceSetup]] for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (http://search.biocase.de/botany), one for the biodiversity of Europe (http://search.biocase.org/europe) and one for global occurrence data (http://search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ''Capabilities'' for introspecting the configuration of a BioCASe web service, ''Scan'' for getting the distinctive values for a concept provided by the web service, and ''Search'' for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device, a combination of several devices or a software shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (http://data.gbif.org).
;Harvester: Application that retrieves all records published by a (BioCASe) web service and stores them in a local database. Harvesters are run by projects and initiatives that consume or aggregate primary biodiversity information, for example by GBIF for running the [http://data.gbif.org GBIF data portal].
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying '''one''' (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from "Python Wrapper". Sort of "wraps" around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See [[Installation#Downloading from the Subversion Repository]]).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
b91e00327447e20b2c433aa3cc330941a319b118
FAQ
0
52
334
296
2011-08-16T14:25:25Z
JoergHoletschek
3
/* When can I use the BioCASe Provider Software? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just contact us and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
f1aab34967fa680aabe20a02441004526a1c0c02
335
334
2011-08-16T14:26:33Z
JoergHoletschek
3
/* General */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry (you might need to close and reopen your browser). If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
348782146da84dee318c5ea6abfb1a91a65e53eb
336
335
2011-08-16T14:28:51Z
JoergHoletschek
3
/* When typing in the URL for my new installation (http://localhost/biocase), I get an empty page or a “URL not found” error. What’s wrong? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
d64cdaaab6939a4a9af8df5d0678631e427959d4
337
336
2011-08-16T14:32:16Z
JoergHoletschek
3
/* I cannot find the installation package for the DBMS and the Python version I am using. */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
0db5581c6211b64f878d1020e021ae5087447705
338
337
2011-08-16T14:33:19Z
JoergHoletschek
3
/* I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribut
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
b728249092c9dfd8c88ed0a808462a58227e2f51
339
338
2011-08-16T14:36:10Z
JoergHoletschek
3
/* I want to update my BioCASe installation. How do I do this? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
9b00bb2de78ce71fffdcc04fcdddcd156f7d9069
340
339
2011-08-16T14:44:40Z
JoergHoletschek
3
/* I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map it to the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
629da45fe56be2cdf0115abe45c7a6a2f9877788
VersionHistory
0
23
341
297
2011-08-17T10:09:19Z
JoergHoletschek
3
/* Version 2.6.1 [upcoming] */
wikitext
text/x-wiki
== Version 2 History ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4357d402293633c9eb4c4bfb374bb6e420f0aefd
347
341
2011-08-18T08:50:53Z
JoergHoletschek
3
/* Version 2.6.1 [upcoming] */
wikitext
text/x-wiki
== Version 2 History ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler: Unary operator (isNull, isNotNull) are processed correctly now.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
24c8ad5d13db1828cd893194a73874ccf4334fef
File:InstSetupScriptStart.png
6
10
342
21
2011-08-17T10:24:54Z
JoergHoletschek
3
uploaded a new version of "[[File:InstSetupScriptStart.png]]"
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
CommonABCD2Concepts
0
22
344
57
2011-08-17T10:33:40Z
JoergHoletschek
3
/* Mandatory */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Name
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Name
* /DataSets/DataSet/Metadata/Description/Representation/Title
* /DataSets/DataSet/Metadata/Description/Representation[@language]
* /DataSets/DataSet/Metadata/RevisionData/DateModified
Unitdata
<pre>
/DataSets/DataSet/Units/Unit/
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Email
* /DataSets/DataSet/ContentContacts/ContentContact/Address
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Email
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Address
* /DataSets/DataSet/Metadata/Description/Representation/Details
* /DataSets/DataSet/Metadata/Owners/Owner/Organisation/Name/Representation/Text
* /DataSets/DataSet/Metadata/Owners/Owner/Person/FullName
* /DataSets/DataSet/Metadata/Owners/Owner/URIs/URL
* /DataSets/DataSet/Metadata/Owners/Owner/LogoURI
Unitdata
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonRank
* /DataSets/DataSet/Units/Unit/Identifications/Identification/PreferredFlag
* /DataSets/DataSet/Units/Unit/RecordBasis
* /DataSets/DataSet/Units/Unit/Gathering/DateTime/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/Gathering/Agents/GatheringAgent/Person/FullName
* /DataSets/DataSet/Units/Unit/Gathering/LocalityText
* /DataSets/DataSet/Units/Unit/Gathering/Country/ISO3166Code
* /DataSets/DataSet/Units/Unit/Gathering/Country/Name
* /DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LongitudeDecimal
*/DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LatitudeDecimal
== Commonly Used ==
List of further commonly mapped ABCD concepts.
Metadata
* /DataSets/DataSet/IPRStatements/TermsOfUseStatements/TermsOfUse/Text
* /DataSets/DataSet/IPRStatements/Copyrights/Copyright/Text
* /DataSets/DataSet/IPRStatements/IPRDeclarations/IPRDeclaration/Text
* /DataSets/DataSet/IPRStatements/Licenses/License/Text
* /DataSets/DataSet/IPRStatements/Disclaimers/Disclaimer/Text
* /DataSets/DataSet/IPRStatements/Citations/Citation/Text
* /DataSets/DataSet/IPRStatements/Acknowledgements/Acknowledgement/Text
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
568af446dc80f9a7611def6c81f44c2c01df81db
345
344
2011-08-17T10:39:47Z
JoergHoletschek
3
/* Mandatory */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
'''Metadata'''
<pre>
DataSets/DataSet
├─ ContentContacts/ContentContact/Name
├─ TechnicalContacts/TechnicalContact/Name
└─ Metadata
├─ Description
│ ├─ Representation/Title
│ └─ Representation[@language]
└─ RevisionData/DateModified
</pre>
'''Unitdata'''
<pre>
/DataSets/DataSet/Units/Unit/
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Email
* /DataSets/DataSet/ContentContacts/ContentContact/Address
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Email
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Address
* /DataSets/DataSet/Metadata/Description/Representation/Details
* /DataSets/DataSet/Metadata/Owners/Owner/Organisation/Name/Representation/Text
* /DataSets/DataSet/Metadata/Owners/Owner/Person/FullName
* /DataSets/DataSet/Metadata/Owners/Owner/URIs/URL
* /DataSets/DataSet/Metadata/Owners/Owner/LogoURI
Unitdata
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonRank
* /DataSets/DataSet/Units/Unit/Identifications/Identification/PreferredFlag
* /DataSets/DataSet/Units/Unit/RecordBasis
* /DataSets/DataSet/Units/Unit/Gathering/DateTime/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/Gathering/Agents/GatheringAgent/Person/FullName
* /DataSets/DataSet/Units/Unit/Gathering/LocalityText
* /DataSets/DataSet/Units/Unit/Gathering/Country/ISO3166Code
* /DataSets/DataSet/Units/Unit/Gathering/Country/Name
* /DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LongitudeDecimal
*/DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LatitudeDecimal
== Commonly Used ==
List of further commonly mapped ABCD concepts.
Metadata
* /DataSets/DataSet/IPRStatements/TermsOfUseStatements/TermsOfUse/Text
* /DataSets/DataSet/IPRStatements/Copyrights/Copyright/Text
* /DataSets/DataSet/IPRStatements/IPRDeclarations/IPRDeclaration/Text
* /DataSets/DataSet/IPRStatements/Licenses/License/Text
* /DataSets/DataSet/IPRStatements/Disclaimers/Disclaimer/Text
* /DataSets/DataSet/IPRStatements/Citations/Citation/Text
* /DataSets/DataSet/IPRStatements/Acknowledgements/Acknowledgement/Text
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
1d23540cfbda81fec25fa613b511464071e5a2e2
346
345
2011-08-17T10:48:24Z
JoergHoletschek
3
/* Mandatory */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
Metadata
* /DataSets/DataSet/ContentContacts/ContentContact/Email
* /DataSets/DataSet/ContentContacts/ContentContact/Address
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Email
* /DataSets/DataSet/TechnicalContacts/TechnicalContact/Address
* /DataSets/DataSet/Metadata/Description/Representation/Details
* /DataSets/DataSet/Metadata/Owners/Owner/Organisation/Name/Representation/Text
* /DataSets/DataSet/Metadata/Owners/Owner/Person/FullName
* /DataSets/DataSet/Metadata/Owners/Owner/URIs/URL
* /DataSets/DataSet/Metadata/Owners/Owner/LogoURI
Unitdata
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonRank
* /DataSets/DataSet/Units/Unit/Identifications/Identification/PreferredFlag
* /DataSets/DataSet/Units/Unit/RecordBasis
* /DataSets/DataSet/Units/Unit/Gathering/DateTime/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/Gathering/Agents/GatheringAgent/Person/FullName
* /DataSets/DataSet/Units/Unit/Gathering/LocalityText
* /DataSets/DataSet/Units/Unit/Gathering/Country/ISO3166Code
* /DataSets/DataSet/Units/Unit/Gathering/Country/Name
* /DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LongitudeDecimal
*/DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LatitudeDecimal
== Commonly Used ==
List of further commonly mapped ABCD concepts.
Metadata
* /DataSets/DataSet/IPRStatements/TermsOfUseStatements/TermsOfUse/Text
* /DataSets/DataSet/IPRStatements/Copyrights/Copyright/Text
* /DataSets/DataSet/IPRStatements/IPRDeclarations/IPRDeclaration/Text
* /DataSets/DataSet/IPRStatements/Licenses/License/Text
* /DataSets/DataSet/IPRStatements/Disclaimers/Disclaimer/Text
* /DataSets/DataSet/IPRStatements/Citations/Citation/Text
* /DataSets/DataSet/IPRStatements/Acknowledgements/Acknowledgement/Text
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
6b0f7412261a9635e76cc7e79f8d88cc5a518206
User:DavidFichtmueller/monobook.css
2
74
348
2011-08-18T08:57:40Z
DavidFichtmueller
4
show toolbox
css
text/css
/* show toolbox */
#p-tb{ display:block;}
4b5ce491b204d5dbcc6d6f8dcd920d3f31a5ed0a
ABCD2Mapping
0
29
349
269
2011-08-18T11:44:55Z
JoergHoletschek
3
/* Access to Biological Collection Data Schema (ABCD) */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
a19711e1118df2906251484584cc6ad04b8a1556
350
349
2011-08-18T11:50:04Z
JoergHoletschek
3
/* Adding Mandatory ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one we’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
293b8cd9cd270ef1e9fdba81056d98c6525cd2a8
351
350
2011-08-18T11:53:35Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
68d3889706e3b461b699ccf08bc751a327715b4e
352
351
2011-08-18T11:55:23Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following document (use the <strong>–</strong> symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
11b2ab52cc8fcda7fee05058f6111bbbf1ab74c5
353
352
2011-08-18T11:57:11Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
d544ea1de53f01414f2821de591b14b5bc3704d2
354
353
2011-08-18T12:02:06Z
JoergHoletschek
3
/* Adding additional ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is http://localhost/biocase/pywrapper.cgi?dsa=flora, ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
8069e0816e282c8899b887d5f2a072d3753aece2
355
354
2011-08-18T12:10:13Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees: [[SampleABCDDocument]].
c7694dbb7613eed3a318e71330740ca8a2447a5f
Debugging
0
41
356
283
2011-08-18T12:11:00Z
JoergHoletschek
3
/* Basic Usage */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[CommonABCD2Concepts|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
a91df8e26166d9ed2107752f6c64e086c7de31db
357
356
2011-08-18T12:13:11Z
JoergHoletschek
3
/* Analyzing the Response Document */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[SampleABCDDocument|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[CommonABCD2Concepts| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
c0f46e142cc9c4fd42069ce87768cf8c62085ad5
358
357
2011-08-18T12:15:01Z
JoergHoletschek
3
/* Content */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[SampleABCDDocument|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[SampleABCDDocument| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
23daaa234bc5ef6ea4396e69106e935d6e3d9175
359
358
2011-08-18T12:19:20Z
JoergHoletschek
3
/* Content */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[SampleABCDDocument|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<syntaxhighlight>
<biocase:content recordCount="0" recordDropped="0" recordStart="0" totalSearchHits="0">
<biocase:capabilities>
<biocase:SupportedSchemas namespace="http://www.tdwg.org/schemas/abcd/2.06" request="true" response="true">
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Address</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Email</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Name</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/Metadata/Description/Representation/Details</biocase:Concept>
...
</biocase:SupportedSchemas>
</biocase:capabilities>
</biocase:content>
</syntaxhighlight>
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[SampleABCDDocument| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
c5fea9c9f82078ab9aad9d3601577ad28bd99d6c
360
359
2011-08-18T12:20:59Z
JoergHoletschek
3
/* Sample Errors and Warnings in the Debug Output */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[SampleABCDDocument|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<syntaxhighlight>
<biocase:content recordCount="0" recordDropped="0" recordStart="0" totalSearchHits="0">
<biocase:capabilities>
<biocase:SupportedSchemas namespace="http://www.tdwg.org/schemas/abcd/2.06" request="true" response="true">
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Address</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Email</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Name</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/Metadata/Description/Representation/Details</biocase:Concept>
...
</biocase:SupportedSchemas>
</biocase:capabilities>
</biocase:content>
</syntaxhighlight>
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[SampleABCDDocument| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
96f164cd83d345909e46c6e1622ac420356d9c07
361
360
2011-08-18T12:25:39Z
JoergHoletschek
3
/* Sample Errors and Warnings in the Debug Output */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[SampleABCDDocument|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<syntaxhighlight>
<biocase:content recordCount="0" recordDropped="0" recordStart="0" totalSearchHits="0">
<biocase:capabilities>
<biocase:SupportedSchemas namespace="http://www.tdwg.org/schemas/abcd/2.06" request="true" response="true">
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Address</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Email</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Name</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/Metadata/Description/Representation/Details</biocase:Concept>
...
</biocase:SupportedSchemas>
</biocase:capabilities>
</biocase:content>
</syntaxhighlight>
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[SampleABCDDocument| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping for this schema and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
92e30762bf4d51402f91e36d49d9605d71b54d11
ABCD2Mapping
0
29
362
355
2011-08-18T13:39:58Z
JoergHoletschek
3
/* Adding additional ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
eb954115d045f81f5d4f9c3dc5faae5f2b4dadd6
363
362
2011-08-18T13:41:42Z
JoergHoletschek
3
/* Adding Mandatory ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
f2fa3fecbd8a2a9fc278dee64ec4a79c7db263eb
364
363
2011-08-18T13:42:14Z
JoergHoletschek
3
/* The Mapping Editor */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
361ebc51457ab5cb83fae231eef5ae6bbd33ebc6
365
364
2011-08-18T13:42:32Z
JoergHoletschek
3
/* Creating an ABCD Mapping for a Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
60032ac8833e57238c56e8ff89fdff1a6f562e25
366
365
2011-08-18T13:43:12Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But again: Keep in mind that this will make the element not searchable. A better solution is to do any concatenation operations in a database view.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
ee0d90e54e22b1d225a8bcf8372627907a6d281c
Debugging
0
41
367
361
2011-08-18T13:43:58Z
JoergHoletschek
3
/* Debugging a BioCASe Web Service */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png|border]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png|border]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png|border]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png|border]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[SampleABCDDocument|here]]):
[[File:debugResponseDocumentOverview.png]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<syntaxhighlight>
<biocase:content recordCount="0" recordDropped="0" recordStart="0" totalSearchHits="0">
<biocase:capabilities>
<biocase:SupportedSchemas namespace="http://www.tdwg.org/schemas/abcd/2.06" request="true" response="true">
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Address</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Email</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Name</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/Metadata/Description/Representation/Details</biocase:Concept>
...
</biocase:SupportedSchemas>
</biocase:capabilities>
</biocase:content>
</syntaxhighlight>
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[SampleABCDDocument| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping for this schema and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
5af44835c37bf978bf16a9c1082c9d61438a0c53
368
367
2011-08-18T13:44:29Z
JoergHoletschek
3
/* Analyzing the Response Document */
wikitext
text/x-wiki
This tutorial explains how to debug a BioCASe web service and a BioCASe installation in general. If you follow the instructions and don’t manage to get your service running, please [[Special:Contact|contact the BioCASe team]].
== Debugging a BioCASe Web Service ==
Debugging a BioCASe web service can be done with the manual Query Form. It allows you to load a BioCASe request (Search/Scan) from a template, edit the parameters of the request (e.g. the filter) and will show you the response document, which holds the requested ABCD records and useful debug information.
=== Opening the Query Form ===
There are several ways to open the Query Form.
On the entry page of a datasource, <small>TEST and DEBUG</small> will open the Query Form:
[[File:debugDatasourceEntryPage.png|border]]
In the data source configuration tool, the link to the according query form can be always found in the link list at the top of the page. Moreover, in the mapping editor, the button <small>Test mapping!</small> will open the Query Form in a separate tab:
[[File:abcdMappingEditorEmptyTop.png|border]]
=== Basic Usage ===
On top of the Query Form you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is the correct access point of the web service you want to debug!
[[File:debugQueryformFull.png|border]]
The usage of the Query Form is very straightforward:
* Click on one of the links below the text box to load a template, for example for an ABCD2 Scan or ABCD2 Search;
* Edit the request parameters;
* Click on <small>Submit</small> to get the response document.
The section <small>BioCASe protocol filter operators</small> lists the operators that can be used for creating complex filters that combine several filter criteria. More about creating filters can be found in the BioCASe Protocol documentation at http://www.biocase.org/products/protocols/index.shtml.
Clicking on the <small>Show</small> link in the <small>Capabilities</small> section will show the Capabilities response in a frame of the Query Form. This is useful, since it shows the namespaces for the schemas supported by the web service (which is required in the request text) and XPaths of mapped ABCD elements (required for creating filters on these elements). By using Copy & Paste you can spare the trouble of entering these monstrous strings of characters.
=== Changing the Debug Level for a Data Source ===
Debug info can be set to one of four levels for a BioCASe data source:
* <strong>Error</strong> is the highest level will only output errors that prevent the web server from answering a request.
* <strong>Warning</strong> will output errors that keep BioCASe from answering a request and warnings that don’t prevent the fulfilling of the request, but should be analysed carefully. For example, they might tell you that records have been dropped because mandatory ABCD elements have not been mapped or were empty for certain records.
* <strong>Info</strong> is the default and will add some more information about how the Provider Software processes the request.
* <strong>Debug</strong> is the most detailed level and will produce very verbose debug output. It adds very comprehensive information about how the ABCD documents are constructed and is suitable only for experienced users.
For most cases, keeping the default ''Info'' level should be sufficient for testing and debugging a web service. For production use, you should set it to ''Error'' later. You can do this in the configuration of a datasource under Settings:
[[File:debugDatasourceSettings.png|border]]
== Analyzing the Response Document ==
Upon clicking <small>Submit</small>, the Query Form will send the request to the web service and wait for the response. It might take some time – up to minutes – until the response document shows up. Amongst others, this depends on
* the complexity of the query (especially the filters),
* the size of the dataset returned,
* the debug level set (“debug” results in very exhaustive debug output),
* the performance of the servers running BioCASe and the database,
* the network bandwidth.
The response document consists of three sections (a full response document can be found [[SampleABCDDocument|here]]):
[[File:debugResponseDocumentOverview.png|border]]
=== Header ===
This section contains information about the BioCASe installation – operating system, DBMS used, Python/BioCASe version etc. It is intended for a consumer application and won’t be very helpful for debugging:
<syntaxhighlight>
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54)
[MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
</syntaxhighlight>
=== Content ===
This section makes up the payload of the response document, depending on the type of request:
<strong>Capabilities:</strong> Lists all schemas supported by the web service. For each schema, all mapped concepts (identified by their XPaths) are listed with data type and searchable flag.
<syntaxhighlight>
<biocase:content recordCount="0" recordDropped="0" recordStart="0" totalSearchHits="0">
<biocase:capabilities>
<biocase:SupportedSchemas namespace="http://www.tdwg.org/schemas/abcd/2.06" request="true" response="true">
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Address</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Email</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/ContentContacts/ContentContact/Name</biocase:Concept>
<biocase:Concept datatype="normalizedString" searchable="1">/DataSets/DataSet/Metadata/Description/Representation/Details</biocase:Concept>
...
</biocase:SupportedSchemas>
</biocase:capabilities>
</biocase:content>
</syntaxhighlight>
<strong>Scan:</strong> The document will simply list all distinct values for the concept specified in the request. When done for the scientific name, it would look similar to this:
<syntaxhighlight>
<biocase:content recordCount="1664" recordDropped="0" recordStart="0" totalSearchHits="1664">
<biocase:scan>
<biocase:value>Achillea atrata L.</biocase:value>
<biocase:value>Achillea millefolium L.</biocase:value>
<biocase:value>Achillea nobilis L. ssp. nobilis</biocase:value>
<biocase:value>Achillea ptarmica L.</biocase:value>
<biocase:value>Acinos alpinus (L.) Moench</biocase:value>
<biocase:value>Acinos arvensis (Lam.) Dandy</biocase:value>
<biocase:value>Aconitum degenii ssp. paniculatum (Arcang.) Mucher</biocase:value>
<biocase:value>Aconitum lycoctonum L. ssp. lycoctonum</biocase:value>
<biocase:value>Aconitum napellus L. s.l.</biocase:value>
...
</biocase:scan>
</biocase:content>
</syntaxhighlight>
<strong>Search:</strong> For this type of request, the content consists of the ABCD dataset(s). See the the [[SampleABCDDocument| ABCD2 example]].
=== Diagnostics (Debug Output) ===
This section is the most interesting part for debugging. If debug level is set to ''Info'' (which is recommended for debugging), it will document the processing of the request by the web service. The output is easy to understand, for example it will contain the SQL statements sent to the database.
For a successful search request it could look similar to this:
<syntaxhighlight>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">
Datasource wrapper FloraExsiccataBavarica requested
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Reading PSF from C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica
\provider_setup_file.xml
</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">
PSF: PSF=C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\provider_setup_file.xml,
recLimit=100, loglevel=20, user=webuser, database=rbg, dbIP=192.168.2.10, dbms=mysql,
encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06':
<biocase.wrapper.psf_handler.SupportedSchema instance at 0x011F5B98>}, tablegraph=GRAPH: graph:
unit-metadata, +++ ALIAS2TABLE: {u'unit': u'feb3', u'metadata': u'metadata'}
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
BioCASe protocol used.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
HTTP parameter 'query' used for building the request.
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\FloraExsiccataBavarica\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT DISTINCT unit.id FROM feb3 AS unit
WHERE (unit.nameautor LIKE 'Allium %' ) LIMIT 11'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Executing SQL: 'SELECT unit.id, metadata.supplier_organisation, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (40, 41, 42, 43, 44, 45, 46, 47)) ORDER BY unit.id'
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Hits: 8
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
time to execute request is 0.46599984169
</biocase:diagnostic>
</biocase:diagnostics>
</syntaxhighlight>
== Sample Errors and Warnings in the Debug Output ==
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
No DB connection could be established. Please verify DB state and connection parameters
in your provider_setup_file.xml.
</biocase:diagnostic>
</syntaxhighlight>
Well... just what it says. The Provider Software could not connect to the database to be published. Check the database connection settings (server IP, database name, user, and password) and make sure you’ve installed the Python package for the DBMS you’re using (see the <small>Libs test</small> page in <small>Utilities</small>).
<syntaxhighlight>
<biocase:diagnostic severity="INFO">
Try to get CMF for namespace http://www.tdwg.org/schemas/abcd/2.06
</biocase:diagnostic>
<biocase:diagnostic severity="INFO">
Load CMFile 'C:\Workspace\bps2\config\datasources\flora\cmf_ABCD_2.06.xml'
</biocase:diagnostic>
<biocase:diagnostic severity="ERROR">
The CMF DB mapping file http://www.tdwg.org/schemas/abcd/2.06 was corrupt or could
not be interpreted.
</biocase:diagnostic>
</syntaxhighlight>
The requested schema (identified by the namespace http://www.tdwg.org/schemas/abcd/2.06) is not supported by that service. Create a mapping for this schema and map elements.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result
/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider!
Please do a capabilities request to see all searchable concepts
</biocase:diagnostic>
</syntaxhighlight>
Obvious - happens if you try to use a concept that is not mapped in a scan request or a filter.
<syntaxhighlight>
<biocase:diagnostic severity="ERROR">
A SQL statement produced an error: SELECT unit.id, metadata.supplier_organisation,
metadata.supplier_email, ...
FROM feb3 AS unit LEFT JOIN metadata AS metadata ON (metadata.id = unit.metadata_fk)
WHERE (unit.id IN (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)) ORDER BY unit.id
</biocase:diagnostic>
</syntaxhighlight>
That could have a number of reasons: One of the table/column names that were set up in the configuration does not exist (because it was renamed or removed) or the credentials used by the BPS do not have sufficient privileges. Simply copy the SQL statement and execute it manually on the database with a regular database client that will show you the detailed error message returned by the DBMS.
<syntaxhighlight>
<biocase:diagnostic severity="WARNING">
The mandatory child element SourceInstitutionID could not be created [0 existing, but 1
required]. The element /DataSets/DataSet/Units/Unit was also dropped.
</biocase:diagnostic>
<biocase:diagnostic severity="WARNING">
The mandatory child element Units could not be created [0 existing, but 1 required]. The
element /DataSets/DataSet was also dropped.
</biocase:diagnostic>
</syntaxhighlight>
One problem caused the next one in this sequence of warnings: The mandatory ABCD element ''SourceInstitutionID '' was either not mapped or empty; therefore the respective record (''unit'') was dropped. Because this happened for all units in the dataset, all units were dropped, resulting in an empty ''Units'' sub tree. The second warning tells you what happened then: Because the ''Units'' element is mandatory for the ''Dataset'' element, the whole dataset was dropped. As a result, the response ABCD document was empty.
== Debugging a BioCASe Installation ==
In case the debug output of the web service doesn’t help you to find the problem, or if the BPS behaves not as intended without displaying any error messages, you should have a look at the debug logs written by the BPS. To turn on the Debug logs, go to the System Administration page and set <small>Debug logs</small> to <small>True</small>.
[[File:instConfigTool.png|500px]]
Redo the step that didn’t work and open the ''log'' folder of your BioCASe installation. There are several global log files (pywrapper_request.log, pywrapper_error.log, webapp_debug.log, webapp_error.log) and a debug files per data source (e.g. debug_flora.log). Open these files and see if they can give you a clue to the problem.
If you still can’t get it running, [[Special:Contact|contact the BioCASe team]].
77cba1cb76e7f123dd3cc549134c732f033ddb01
DatasourceSetup
0
24
369
332
2011-08-18T13:45:19Z
JoergHoletschek
3
/* Creating a New Data Source */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px|border]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database.<br>
'''<u>Important Note:</u>''' Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed <small>Save</small> for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
a8c8503c89716991e32c703e9ecffb53098a80de
Installation
0
6
370
343
2011-08-18T15:26:31Z
JoergHoletschek
3
/* Installing Additional Python Packages */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
b0134e79c2a2e9446545eab65c8cc61da2914398
VersionHistory
0
23
371
347
2011-08-23T09:26:12Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 2.6 ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler: Unary operator (isNull, isNotNull) are processed correctly now.
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8a98877cbcad1913fa3a9535da8213512e6f9494
372
371
2011-08-23T09:27:25Z
JoergHoletschek
3
/* Version 2.6.1 [upcoming] */
wikitext
text/x-wiki
== Current Version 2.6 ==
===Version 2.6.1 [upcoming]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
bf9ca7afd8f4d361bf4bc06022d1bc3e471be4d1
373
372
2011-08-23T09:49:00Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 2.6 ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.5.5
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8bab862194a4313ffc6490ec9f2493c1c86b8276
374
373
2011-08-24T14:44:15Z
JoergHoletschek
3
/* Version 2.5.4 [2010-09-14] */
wikitext
text/x-wiki
== Current Version 2.6 ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f4058c821e538912596243792031a4f363369537
388
374
2011-11-01T13:13:59Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC ===
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
** Check for uniqueness of IDs in the list returned by first query only done when this is not done by a DISTINCT clause in query
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
456404fc2f7b7c2ff8c77ba48383a81c3bfe4598
389
388
2011-11-01T16:06:54Z
JoergHoletschek
3
/* Version 3.0RC */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC [2011-11-01]===
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
** Check for uniqueness of IDs in the list returned by first query only done when this is not done by a DISTINCT clause in query
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
eab087ccf72874aeed733a9204a2e748b9232ef8
390
389
2011-11-01T16:07:30Z
JoergHoletschek
3
/* Version 3.0RC [2011-11-01] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC [2011-11-01]===
* New Archiving feature
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
** Check for uniqueness of IDs in the list returned by first query only done when this is not done by a DISTINCT clause in query
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
611fb0c2202fd086f7c4d33476ff496b3cced56c
391
390
2011-11-01T16:08:33Z
JoergHoletschek
3
/* Version 3.0RC [2011-11-01] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC [2011-11-01]===
* New Archiving feature
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core: Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure. See example [http://ww3.bgbm.org/bps2/ScreenShots?action=AttachFile&do=get&target=config_tool4.gif here]
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
68342dc6021740eb3bdebde466ffbc112ab32934
392
391
2011-11-01T16:16:34Z
JoergHoletschek
3
/* Version 2.3.0 [2005-11-03] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC [2011-11-01]===
* New Archiving feature
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core: Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1fdf4bccb0dca76b7fd8d5bc523f39458cefdfc9
FAQ
0
52
377
340
2011-09-06T16:18:06Z
JoergHoletschek
3
/* In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
07337b49ffbede42c61ffd055ae5e4794fdfba5c
378
377
2011-09-13T09:28:25Z
JoergHoletschek
3
/* I want to update my BioCASe installation. How do I do this? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgot the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
6d9f9958a639fd4c577c9efc88cbbae77e4326e5
379
378
2011-09-13T09:31:29Z
JoergHoletschek
3
/* I’ve forgot the password of my BioCASe installation. What should I do? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
a02d13a5353cd6494dbdca04dd5fd88105219166
393
379
2011-11-07T12:47:58Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
8e790ebd1bec132f128e6613ba34c2354b7b8213
CommonABCD2Concepts
0
22
383
346
2011-09-21T12:07:02Z
JoergHoletschek
3
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
Unitdata
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/HigherTaxa/HigherTaxon/HigherTaxonRank
* /DataSets/DataSet/Units/Unit/Identifications/Identification/PreferredFlag
* /DataSets/DataSet/Units/Unit/RecordBasis
* /DataSets/DataSet/Units/Unit/Gathering/DateTime/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/Gathering/Agents/GatheringAgent/Person/FullName
* /DataSets/DataSet/Units/Unit/Gathering/LocalityText
* /DataSets/DataSet/Units/Unit/Gathering/Country/ISO3166Code
* /DataSets/DataSet/Units/Unit/Gathering/Country/Name
* /DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LongitudeDecimal
*/DataSets/DataSet/Units/Unit/Gathering/SiteCoordinateSets/SiteCoordinates/CoordinatesLatLong/LatitudeDecimal
== Commonly Used ==
List of further commonly mapped ABCD concepts.
Metadata
* /DataSets/DataSet/IPRStatements/TermsOfUseStatements/TermsOfUse/Text
* /DataSets/DataSet/IPRStatements/Copyrights/Copyright/Text
* /DataSets/DataSet/IPRStatements/IPRDeclarations/IPRDeclaration/Text
* /DataSets/DataSet/IPRStatements/Licenses/License/Text
* /DataSets/DataSet/IPRStatements/Disclaimers/Disclaimer/Text
* /DataSets/DataSet/IPRStatements/Citations/Citation/Text
* /DataSets/DataSet/IPRStatements/Acknowledgements/Acknowledgement/Text
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
d1a51a7c1726a1b26c6ac52970796fa7361528ff
384
383
2011-09-21T12:21:20Z
JoergHoletschek
3
/* Highly Recommended */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
└─ LatitudeDecimal
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
Metadata
* /DataSets/DataSet/IPRStatements/TermsOfUseStatements/TermsOfUse/Text
* /DataSets/DataSet/IPRStatements/Copyrights/Copyright/Text
* /DataSets/DataSet/IPRStatements/IPRDeclarations/IPRDeclaration/Text
* /DataSets/DataSet/IPRStatements/Licenses/License/Text
* /DataSets/DataSet/IPRStatements/Disclaimers/Disclaimer/Text
* /DataSets/DataSet/IPRStatements/Citations/Citation/Text
* /DataSets/DataSet/IPRStatements/Acknowledgements/Acknowledgement/Text
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
9c6b94e4f907cb3c9bc52af27bb2ad220e37e6dd
385
384
2011-09-21T14:22:19Z
JoergHoletschek
3
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
└─ LatitudeDecimal
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
└─ LatitudeDecimal
</pre>
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
bc458f1c516238bfa3edcf145ab0f89fde2411d0
386
385
2011-09-21T14:25:01Z
JoergHoletschek
3
/* Commonly Used */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
└─ LatitudeDecimal
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
└─ LatitudeDecimal
</pre>
Unitdata
* /DataSets/DataSet/Units/Unit/DateLastEdited
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/InformalNameString[@language]
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Identifiers/Identifier/IdentifierPersonName/FullName
* /DataSets/DataSet/Units/Unit/Identifications/Identification/Date/ISODateTimeBegin
* /DataSets/DataSet/Units/Unit/KindOfUnit
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypifiedName/FullScientificNameString
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/TypeStatus
*/DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/TitleCitation
* /DataSets/DataSet/Units/Unit/SpecimenUnit/NomenclaturalTypeDesignations/NomenclaturalTypeDesignation/NomenclaturalReference/CitationDetail
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/FileURI
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Comment
* /DataSets/DataSet/Units/Unit/MultiMediaObjects/MultiMediaObject/Context
* /DataSets/DataSet/Units/Unit/Gathering/Project/ProjectTitle
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName
* /DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Altitude/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/LowerValue
* /DataSets/DataSet/Units/Unit/Gathering/Depth/MeasurementOrFactAtomised/UnitOfMeasurement
* /DataSets/DataSet/Units/Unit/Gathering/Biotope/Name
* /DataSets/DataSet/Units/Unit/CollectorsFieldNumber
* /DataSets/DataSet/Units/Unit/Sex
* /DataSets/DataSet/Units/Unit/Age
* /DataSets/DataSet/Units/Unit/Notes
* /DataSets/DataSet/Units/Unit/RecordURI
2c192a8ea0e9207b2c4cd2da2d8b0e96f2b6873a
387
386
2011-09-21T14:39:59Z
JoergHoletschek
3
/* Commonly Used */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
└─ LatitudeDecimal
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
713c6ee80d5398f062518fcdd902437bf9940738
Archiving
0
80
394
2011-11-15T10:13:09Z
JoergHoletschek
3
Created page with "blubb"
wikitext
text/x-wiki
blubb
71c4025dd9897b364f3ebbb42c484ff43d00791c
397
394
2011-11-15T14:46:06Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the TDWG site.
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the DarwinCore data standard, which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
Creating XML Archives
Once you’ve finished mapping a schema (see here how to do that) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the “Archive” link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
(bild)
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
“Create a new Archive” allows you to create a new archive for each schema mapped. Simply select the schema and press “Create Archive” (leave the defaults unless you have a good reason to change them). During the archiving process, the “Log” will display messages indicating the progress:
(bild)
You can always cancel the archiving process by pressing “Cancel” next to the respective entry listed under “in progress”. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing “Show full log” will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the “Finished” list, if it’s still being processed, under “In progress”. Pressing the “Info” link next to an entry will display the log again. “Download” and “Remove” will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
Destination schema: Data schema that will be used for storing the published records in the archive.
Paging size: Number of records stored in each document. The default 1,000 should be suitable for most cases. Important note: Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
Max number of consecutive errors: The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
Archive file name: Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
Creating a DarwinCore Archive
37f56ee8ee4add40b4e2571e0d7699891c4277ae
398
397
2011-11-15T14:50:49Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see here how to do that) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the “Archive” link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
(bild)
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
“Create a new Archive” allows you to create a new archive for each schema mapped. Simply select the schema and press “Create Archive” (leave the defaults unless you have a good reason to change them). During the archiving process, the “Log” will display messages indicating the progress:
(bild)
You can always cancel the archiving process by pressing “Cancel” next to the respective entry listed under “in progress”. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing “Show full log” will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the “Finished” list, if it’s still being processed, under “In progress”. Pressing the “Info” link next to an entry will display the log again. “Download” and “Remove” will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
Destination schema: Data schema that will be used for storing the published records in the archive.
Paging size: Number of records stored in each document. The default 1,000 should be suitable for most cases. Important note: Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
Max number of consecutive errors: The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
Archive file name: Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
493afd0cbe1fe67b9130d40cbb04c05192c3453f
399
398
2011-11-15T14:56:30Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
(bild)
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive<small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
(bild)
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
Destination schema: Data schema that will be used for storing the published records in the archive.
Paging size: Number of records stored in each document. The default 1,000 should be suitable for most cases. Important note: Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
Max number of consecutive errors: The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
Archive file name: Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
8fc75d0d1359efd973b20cf9da2509bc3c96497a
400
399
2011-11-15T14:56:49Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
(bild)
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
(bild)
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
Destination schema: Data schema that will be used for storing the published records in the archive.
Paging size: Number of records stored in each document. The default 1,000 should be suitable for most cases. Important note: Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
Max number of consecutive errors: The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
Archive file name: Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
72b6c9f9c818df0fe2759be0d9cc0e62a6107075
401
400
2011-11-15T15:01:14Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
(bild)
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
(bild)
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
16a7bacba6a9d3dfa7e720d450df2468b47c3fdd
402
401
2011-11-15T15:02:19Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
a3860547ea5270f5f221675e4f68ea1b24ca1632
405
402
2011-11-15T15:05:00Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border|600px]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border|600px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
260f2708c4dcdc5f9a9dad1146295af21fcc319a
406
405
2011-11-15T15:05:58Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border|650px]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border|650px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
c38f80e6d8224d2c88da6830b18d3293fe6079ff
407
406
2011-11-15T15:06:29Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created.
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border|650px]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border|650px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
coming soon
14d17b39af0660f5561f779700d349a9521d4863
409
407
2011-11-15T15:11:26Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]]
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border|650px]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border|650px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
coming soon
6fdc4b6968bb2fca6bc96326a38635261cf755a2
410
409
2011-11-15T15:13:58Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border|650px]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border|650px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
coming soon
66ad4a54454358d1e4ecfe6d781e53243a042857
414
410
2011-11-15T15:22:40Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: XML Archives simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
DarwinCore Archives (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval, or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
coming soon
bf518a6bc6e6a1b3580cd67f96e47520fc78e7d4
415
414
2011-11-16T09:42:05Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
coming soon
373d67dbd47fbc3e2d75b199db45a47dfa3c9c6a
416
415
2011-11-22T12:03:29Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
coming soon
===Requirements===
===Installation===
===Usage===
10fec79466ea0f527399edd037699fdb02db0867
Main Page
0
1
395
263
2011-11-15T10:14:52Z
JoergHoletschek
3
wikitext
text/x-wiki
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Special:Contact|150px|right|BioCASe Support]]
Please get in contact with the BioCASe Support if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
You can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the form on the [[Special:Contact|Contact page]] to send us a message,
* or directly mail us to the address given on the [[Special:Contact|Contact page]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Special:Contact|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Archiving]]: Learn how to create ABCD Archives or DarwinCore Archives of your published data.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
890c3c5d9d3cca0ee3e0881ad28691ec965f7051
MediaWiki:Sidebar
8
3
396
230
2011-11-15T10:15:46Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Archiving|Archiving
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** SampleABCDDocument|Sample Document
* Feedback
** Special:Contact|Contact Us
2b200a709b060898d48ccef9e65ea24f9dc19121
File:ArchArchivingPage.png
6
81
403
2011-11-15T15:02:34Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
412
403
2011-11-15T15:21:55Z
JoergHoletschek
3
uploaded a new version of "[[File:ArchArchivingPage.png]]"
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:ArchProcess.png
6
82
404
2011-11-15T15:03:16Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
413
404
2011-11-15T15:22:21Z
JoergHoletschek
3
uploaded a new version of "[[File:ArchProcess.png]]"
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:AlgenEngelsSmall ABCD 2.06.zip
6
83
408
2011-11-15T15:10:56Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Desmidiaceae Engels.zip
6
84
411
2011-11-15T15:14:22Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Archiving
0
80
417
416
2011-11-22T12:59:09Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few minutes and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
===Trouble Shooting===
b15a30605610b82e269a476b76b8637e4628dbf8
419
417
2011-11-22T13:02:32Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
===Trouble Shooting===
126c3170d3f6889575a51f3703ba8a55593433c6
420
419
2011-11-22T13:24:11Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''root/home/dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive files, create the data files, EML document(s) and the archive descriptor(s) and create the DarwinCore Archives in the folder output:
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from seconds to minutes, for large collections (millions of records) up to hours.
===Trouble Shooting===
9c88bd34b6a9145a51940959153ad9f359405530
421
420
2011-11-22T13:41:13Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive files, create the data files, EML document(s) and the archive descriptor(s) and create the DarwinCore Archives in the folder output:
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the process will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
===Trouble Shooting===
13622f343925b9fa3fadc2ddca449359b3b39f4b
424
421
2011-11-22T13:46:31Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s) and create the DarwinCore Archives in the folder output:
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
===Trouble Shooting===
58a835b39a836987452cc604c19ec14e648cf8e1
425
424
2011-11-22T13:54:05Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s) and create the DarwinCore Archives in the folder output:
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder, each named after the dataset title:
[[File:dwcaOutputFolder.png]]
===Trouble Shooting===
30e4396b64704fd1e91b8836d9a3eee391d3d787
426
425
2011-11-22T14:15:36Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset>_<filename>''. So for the example above, the output folder would look like this:
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset>_<filename>'' becomes ''dataset_title''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
1982ef72985a64b896c0f5975c0c09527304330d
427
426
2011-11-22T14:24:12Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
a0211b27c01099922e40e1065010f3464bc254f4
430
427
2011-11-22T14:27:30Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
0373dee516a95da7835b764e48a47e7b16c85e28
431
430
2011-11-22T15:04:44Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
dde3357351b6dae1d25d260aaf4b2441938b21af
432
431
2011-11-22T15:06:59Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to a folder on your machine (let's assume it's called ''dwca'').
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
5afb37a57ccc3695e8e90c020f06a094ba61dcf9
433
432
2011-11-22T15:29:53Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
640970b0ce26a61c1376ebe7246859d66cabf168
434
433
2011-11-22T15:48:47Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
The default settings should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records'''
efc96a5a9c0b9b8c74886dc6f28cf83613870203
436
434
2011-11-22T15:50:53Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
The default settings should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records'''
52840dfddb55a935ec10251bbad5dfd4cc62090c
437
436
2011-11-22T15:57:34Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
The default settings should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory when invoking the transformer. So on Windows, type in
On Windows, it would be like this:
c94314e4af0d9d46792820058d05fdf0f5874d4d
438
437
2011-11-22T16:00:47Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
The default settings should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
25d10df594f9ef0707e4c48bf0a2aa2597d32ec8
439
438
2011-11-22T16:03:51Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Archives using the ABCD 2.06 schema (dubbed as “ABCD dumps”) can be converted into one or several DarwinCore Archives in a subsequent step. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than the ABCD dump it was created from.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
a3014672591aa3e1cddd23d2f379b744a2243b80
File:DwcaTest.png
6
85
418
2011-11-22T12:59:53Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaStartLocal.png
6
86
422
2011-11-22T13:43:08Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaEndLocal.png
6
87
423
2011-11-22T13:43:30Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaOutputFolderLinux.png
6
88
428
2011-11-22T14:24:27Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaOutputFolderWindows.png
6
89
429
2011-11-22T14:24:50Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaSettingMemory.png
6
90
435
2011-11-22T15:49:54Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
VersionHistory
0
23
440
392
2011-12-08T14:01:42Z
JoergHoletschek
3
/* Version 3.0RC [2011-11-01] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC [2011-11-01]===
* New Archiving feature
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
67e065295312f06901c4cf6bca2b09b52888abac
441
440
2011-12-08T14:03:56Z
JoergHoletschek
3
/* Version 3.0RC [2011-11-01] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC2 [2011-11-24]===
* New Archiving feature
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
79142b7e045efca9d0928102a0fb0cdd483ca3d8
442
441
2011-12-08T15:02:02Z
JoergHoletschek
3
/* Version 3.0RC2 [2011-11-24] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC2 [2011-11-24]===
* New feature: XML Archives (integrated into UI), DwC Archives as a separate application
* List of table/column names now also available for Oracle databases
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
597776546ef42d28f894eb28556dd26148160d71
444
442
2011-12-08T15:20:30Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0RC2 [2011-11-24]===
* New feature: XML Archives (integrated into UI), DwC Archives as a separate application
* List of table/column names now also available for Oracle databases
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
0fca17f77ca6e985020b017a1ddb9038d9d6278e
447
444
2011-12-14T12:05:18Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives as a separate application
* List of table/column names now also available for Oracle databases
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b0d919a163ef90b66a4108b9b421fc902fe23c68
448
447
2011-12-14T12:06:13Z
JoergHoletschek
3
/* Version 3.0 [2011-12-14] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives as a separate application
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4a662c19eb49313404cf6e7d6b467a51cfdad721
449
448
2011-12-14T12:07:09Z
JoergHoletschek
3
/* Version 3.0 [2011-12-14] */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c5ac9feb2e5e129a7446f2862e5d04d074954ba0
450
449
2012-01-03T16:43:23Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1630c435794bcff0cad766708e87431a2afbb934
451
450
2012-01-04T12:16:39Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
19f536a8f9d1a481f6695ab3f5c22a70130a6ec1
452
451
2012-01-04T15:33:57Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5a4a4fd696aee80627873231d5ed64a88ee3b45f
458
452
2012-01-05T17:49:52Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
616ae732e14a46dfd9ba647af97fa1b19f3455e9
FAQ
0
52
443
393
2011-12-08T15:18:37Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor. I use MySQL, SQL Server, Postgres, Access or Oracle.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for the mentioned database management systems. When you did the setup with an earlier version of BioCASe, you entered table and column names manually - and probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
6976542f58797d8029e5fad833f840d575199420
446
443
2011-12-08T15:34:38Z
JoergHoletschek
3
/* I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor. I use MySQL, SQL Server, Postgres, Access or Oracle. */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
958bdb7152566d816ce624b4e8146eccc5e32368
453
446
2012-01-05T13:08:26Z
JoergHoletschek
3
/* Debugging */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
8451d8aa87eb998119ac8f8aeaba3a3cdf1df67d
454
453
2012-01-05T13:16:04Z
JoergHoletschek
3
/* Debugging */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
It means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
7e0a5e972e6eba66101a04d1cb7f6d0d668bcc98
455
454
2012-01-05T13:17:09Z
JoergHoletschek
3
/* When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
1951931fdf5fd1dff6ddbaa436a0dfcce90e5b3e
456
455
2012-01-05T13:17:32Z
JoergHoletschek
3
/* When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
5b5a50a578dc25a0ae799acd5596f9d0b5621d8e
457
456
2012-01-05T13:17:43Z
JoergHoletschek
3
/* I've mapped ABCD. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
d308851aa042257c1cc44c75ee5fbacaa3b049e5
459
457
2012-01-10T10:07:32Z
JoergHoletschek
3
/* Debugging */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
ace999355e9eda4fbea71ad7e639b8d725a5d96b
DatasourceSetup
0
24
445
369
2011-12-08T15:29:53Z
JoergHoletschek
3
/* Saving, Editing an Existing Setup */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px|border]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database.<br>
'''<u>Important Note:</u>''' Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed <small>Save</small> for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Oracle, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
53666e6f81c8a567625f15acc9e5ac8cb6283a21
460
445
2012-01-23T14:09:29Z
JoergHoletschek
3
/* Adding Tables/Views with their Primary Keys */
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px|border]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
'''<u>Hint</u>''' It has been noted that diacritic characters in primary key columns can cause problems, so you should try to use integer or ascii text columns as primary keys.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database.
'''<u>Important Note:</u>''' Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed <small>Save</small> for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Oracle, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
d058710ab56d5bb600216cedcaf7ca7431074ea5
ABCD2Mapping
0
29
461
366
2012-02-01T18:03:35Z
JoergHoletschek
3
/* Adding Mandatory ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
538dbd67a594a5d1ea430a3d0d63e2afa7e79bdf
462
461
2012-02-15T15:50:31Z
JoergHoletschek
3
/* The Mapping Editor */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
fded962cffd9c05d77e91db6fe66c81b84caf732
BeginnersGuide (French)
0
93
465
2012-03-29T16:43:34Z
JoergHoletschek
3
Created page with "== What is the BioCASe Provider Software? == The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information net..."
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, three requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
* For the web server in question, you must have the possibility to install Python (if it is not installed yet) and Python packages. Even though this can be done by the IT staff, you should make sure that there are no institutional policies colliding.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
e3b2ca7c93155c3a8e8f452167008264b1f63bfa
Installation (French)
0
94
466
2012-03-29T16:44:24Z
JoergHoletschek
3
Created page with "This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please re..."
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
b0134e79c2a2e9446545eab65c8cc61da2914398
467
466
2012-03-29T17:33:13Z
FranckTheeten
15
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
Installation
From Software Provider BioCASE
Aller à: Navigation, rechercher
Installation
Cette partie du wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé BPS). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, s'il vous plaît lire le Guide du Débutant en premier lieu.
Contenu
* 1 Prérequis
* 2 Installation de Apache / IIS et Python
* 3 Téléchargement du logiciel fournisseur de données
o 3.1 Téléchargement du fichier d'archive
o 3,2 téléchargement à partir du serveur Subversion
* 4 Exécution du script d'installation
* 5 Lier BioCASe et serveur Web
o 5.1 Apache
o Internet Information Server 5.2
* 6 Installation de paquets Python supplémentaires
* 7 Modification du mot de passe par défaut
* 8 Vérification de l'installation
Prérequis
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
1. Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
2. Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être en dehors de tout pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de stasifaire cette condition si vous installez BioCASe a des fins de tests ou de travail individuel sur votre propre ordinateur].
3. Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système de l'aide, lisez la FAQ ou prenez contact avec l'équipe BioCASe (support@biocase.org et /ou du projet CABIN).
Installation de Apache / IIS et Python
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallé. Il en va de même pour MacOS X, mais vous devriez jeter un oeil aux discussions et soruces de documentations accessible sur web pour en savoir plus sur les emplacements de fichiers.
Même provider fonctionne avec Apache et Internet Information Server (IIS), nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous voudrez peut-être rester sur cette plateforme. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite Python version 2.5 (et autres sous-versions) afin de fonctionner. Même s’il fontionne également avec les versions 2.6 et 2.7, la version recommandée est de 2,5 Python. Pour les versions ultérieures, les librairies nécessaire pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin , trouver le paquet requis pour votre système gestionnaire de bases de données et vérifier la disponibilité de nouvelles versions de Python sur le site Web respectif (par exemple, la bibliothèque 4SuiteXML requis pour l'exécution l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut, car installé à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors du changement de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Quand vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
Téléchargement du logiciel fournisseur
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir de notre dépôt Subversion. La première option est la plus facile si vous n'êtes pas familier avec Subversion; avec la deuxième option, il est plus facile pour vous de mettre à jour votre installation ultérieurement. Donc, si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mis à jour, vous devriez opter plutôt pour le dépôt subversion.
Téléchargement du fichier d'archive
Il suffit de télécharger l'archive à partir de la section Téléchargement du site BioCASe et décompresser le contenu du dossier de destination.
Téléchargement à partir du dépôt Subversion
Si vous utilisez Windows, vous devez installer un client Subversion premier (Tortoise , qui est livré avec une jolie interface très commode). Linux et MacOS contiennent généralement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La lise à jour de votre installation à la dernière version BPS est alors facile et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 (dans le cas de la version 2.6.0).
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez :
svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase
Vous vous connecterez au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire l'BioCASe.. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez « Checkout». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
Exécution du script d'installation
Le script d'installation lancera les fichiers de configuration avec les valeurs que vous fournissez et liera les fichiers de script à votre installation de Python (vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement des répertoires d’Apache, Python ou du logiciel lui-même sur votre ordinateur). Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (ou «invite de commande" dans Windows, à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter »).
Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple « cd D://biocaseprovider ») et tapez:
python setup.py
Si la commande ne marche pas , vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python.
Exemple (sous Windows et DOS, en supposant que vous avez installé python dans sa version 2.5 et dans le répertoire C:\Python25. Adaptez les valeurs en fonction de la situation sur votre ordinateur)
C:\Python25\setup.py setup.py
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme décrit ci-dessus):
InstSetupScriptStart.png
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur Entrée.
Domaine Webserver: Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, http://www.moninstitution.org. Vous pouvez conserver le localhost par défaut tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) plus tard.
URL de base: Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par xemple http://moinstitution.org/monbiocase/ ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à www.myinstitution.org/biocase.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
6b52206d01aa49228ceece24db88ad459aa50e25
468
467
2012-03-29T17:39:34Z
FranckTheeten
15
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
Installation
From Software Provider BioCASE
Aller à: Navigation, rechercher
Installation
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant en premier lieu.
Contenu
* 1 Prérequis
* 2 Installation de Apache / IIS et Python
* 3 Téléchargement du logiciel fournisseur de données
o 3.1 Téléchargement du fichier d'archive
o 3,2 téléchargement à partir du serveur Subversion
* 4 Exécution du script d'installation
* 5 Lier BioCASe et serveur Web
o 5.1 Apache
o Internet Information Server 5.2
* 6 Installation de paquets Python supplémentaires
* 7 Modification du mot de passe par défaut
* 8 Vérification de l'installation
Prérequis
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
1. Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
2. Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être en dehors de tout pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de stasifaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
3. Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système de l'aide, lisez la FAQ ou prenez contact avec l'équipe BioCASe.
Installation de Apache / IIS et Python
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez jeter un oeil aux discussions et documentations accessible sur web pour en savoir plus sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous voudrez peut-être rester sur cette plateforme. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (ou la dernière sous-version stable de la branche 2.5). Pour les versions ultérieures, les librairies nécessaire pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin pour vous procurer le paquet requis pour l'installation du driver de votre base de données et vérifier la disponibilité de nouvelles versions de Python sur le site Web respectif (par exemple, la bibliothèque 4SuiteXML uitlisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut, car installé à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors du changement de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Quand vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
Téléchargement du logiciel fournisseur
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir de notre dépôt Subversion. La première option est la plus facile si vous n'êtes pas familier avec Subversion; avec la deuxième option, il est plus facile pour vous de mettre à jour votre installation ultérieurement. Donc, si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mis à jour, vous devriez opter plutôt pour le dépôt subversion.
Téléchargement du fichier d'archive
Il suffit de télécharger l'archive à partir de la section Téléchargement du site BioCASe et décompresser le contenu du dossier de destination.
Téléchargement à partir du dépôt Subversion
Si vous utilisez Windows, vous devez installer un client Subversion premier (Tortoise , qui est livré avec une jolie interface très commode). Linux et MacOS contiennent généralement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La lise à jour de votre installation à la dernière version BPS est alors facile et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 (dans le cas de la version 2.6.0).
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez :
svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase
Vous vous connecterez au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire l'BioCASe.. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez « Checkout». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
Exécution du script d'installation
Le script d'installation lancera les fichiers de configuration avec les valeurs que vous fournissez et liera les fichiers de script à votre installation de Python (vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement des répertoires d’Apache, Python ou du logiciel lui-même sur votre ordinateur). Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (ou «invite de commande" dans Windows, à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter »).
Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple « cd D://biocaseprovider ») et tapez:
python setup.py
Si la commande ne marche pas , vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python.
Exemple (sous Windows et DOS, en supposant que vous avez installé python dans sa version 2.5 et dans le répertoire C:\Python25. Adaptez les valeurs en fonction de la situation sur votre ordinateur)
C:\Python25\setup.py setup.py
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme décrit ci-dessus):
InstSetupScriptStart.png
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur Entrée.
Domaine Webserver: Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, http://www.moninstitution.org. Vous pouvez conserver le localhost par défaut tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) plus tard.
URL de base: Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par xemple http://moinstitution.org/monbiocase/ ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à www.myinstitution.org/biocase.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
1b208bebb467165b6eb5b755ca40655e9b3641cb
VersionHistory
0
23
469
458
2012-04-03T11:03:45Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
d083906f38af552246a3c865c603e77ceb2d97d9
477
469
2012-04-04T10:48:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8cdc996fd76939aa85b0c86dca4d0b048b44640a
478
477
2012-04-04T13:57:38Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources
* Setup script now fixes write permissions for archive folders (working/download directory)
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
d551a419e51318fe0558442a449f0328ed990f51
479
478
2012-04-04T14:15:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
45bacd377e6dcde99e7b99516baaecae1887c270
480
479
2012-04-04T14:33:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
===Upcoming===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
11b72d2ea4909f5e7b6583d16be61c0ef0225fb2
487
480
2012-04-05T14:48:04Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
===Version 3.0.1 [2012-04-05]===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
92e83ad2f79bb1729c93323d9cc663e78a221d2c
499
487
2012-04-10T14:29:43Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fix: XML declaration added to documents in XML archives
===Version 3.0.1 [2012-04-05]===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
388512c8c3731183949cae281927041da7d59aa5
Installation
0
6
470
370
2012-04-04T09:33:18Z
JoergHoletschek
3
/* Internet Information Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
494357a1fe31d7c0e4d42c066a72d04ca9daed21
472
470
2012-04-04T09:34:26Z
JoergHoletschek
3
/* Internet Information Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|300px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
243bc1d61bb53e328b5924d1ab370746609560e6
473
472
2012-04-04T09:35:18Z
JoergHoletschek
3
/* Linking BioCASe and Your Web Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|300px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
6a218dd269094a42e7916220d77874f540650ad4
474
473
2012-04-04T09:35:42Z
JoergHoletschek
3
/* Internet Information Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
88ae6175aae57a4d9f9d5208eea1ace47e18cdc5
File:InstAddScriptMap.png
6
95
471
2012-04-04T09:33:38Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
FAQ
0
52
475
459
2012-04-04T09:51:20Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an "Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request" message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a "502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers" error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
c88e01946999d2617dc082232020ead02a8499ae
476
475
2012-04-04T09:52:03Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it. Download and install the new version as described in the Installation guide (lucky enough, you can skip the installation of Apache, Python and any DB packages). Before pointing your web server to the new installation, manually copy the configuration files located in the ''config'' folder of your old installation to the ''config'' folder of your new installation: ''config.ini'' for the system settings and all folders in the ''datasources'' directory. You can then edit new installation and test the web services.
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
b9ff08864f14d57e69d183c23e2d9b5d45515f1d
Preparation
0
17
481
249
2012-04-05T09:22:45Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-shelf collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script they will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''. You can tell repeatable elements in ABCD by the existence of a container element. For ''MultimediaObject'', for example, there is a container element ''MultimediaObjects'' one level above which holds the (potentially) several multimedia objects:
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[Special:Contact|contact the BioCASe team]].
f7c6146fdb9340de926029e8bacd41303ad3d0af
482
481
2012-04-05T09:25:53Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-shelf collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script they will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''. You can tell repeatable elements in ABCD by the existence of a container element. For ''MultimediaObject'', for example, there is a container element ''MultimediaObjects'' one level above which holds the (potentially) several multimedia objects:
[[File:prepMultimediaObjects.png]]
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[Special:Contact|contact the BioCASe team]].
3fd233ef04d5d34c1b9ff6d8516cd5f844f469e4
484
482
2012-04-05T09:27:14Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-shelf collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script they will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
You can tell repeatable elements in ABCD by the existence of a container element. For ''MultimediaObject'', for example, there is a container element ''MultimediaObjects'' one level above which holds the (potentially) several multimedia objects:
[[File:prepMultimediaObjects.png]]
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[Special:Contact|contact the BioCASe team]].
ea9147b8ecbb0729c01bb383cc1ef3320a69b384
485
484
2012-04-05T09:28:16Z
JoergHoletschek
3
/* Controlled Denormalisation */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-shelf collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script they will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px|border]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
You can tell repeatable elements in ABCD by the existence of a container element. For ''MultimediaObject'', for example, there is a container element ''MultimediaObjects'' one level above which holds the (potentially) several multimedia objects:
[[File:prepMultimediaObjects.png]]
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[Special:Contact|contact the BioCASe team]].
77a358a48ce5602fc560292237b39e822b8bef7c
486
485
2012-04-05T09:30:36Z
JoergHoletschek
3
/* Repeatable Elements in ABCD */
wikitext
text/x-wiki
Before you start publishing your database with BioCASe, you need to consider several issues. In some cases, some preparation of your database for the publication might be necessary. You should read this page of the wiki careful before you start configuring the Provider Software for a given database.
== Live-DB versus Snapshot ==
The easiest way is to connect BioCASe to the same database you’re working with. This would result in any changes you do being visible on the BioCASe access point right away – which is an idea you might not like. Some curators prefer to publish defined versions of their database, for example after they’ve finished reviewing all specimens of a certain genus. If you prefer this, you need to create a second database that holds defined snapshots of your working database and that will be published instead. Snapshots could be generated in a regular interval (e.g., each Friday evening) or upon request. Please contact your IT guys for more help on this.
== Access Control ==
The BioCASe Provider Software will only publish your data to biodiversity networks, meaning it will only read from the database and never do any changes. For security reasons it’s a good idea to create a user for BioCASe that has only read privileges on the database – more precisely on the tables you want to publish. Since the configuration tool will try to load a list of tables and columns from the database to allow easier setup, this user should also be allowed to load meta-information (<small>SHOW TABLES, SHOW COLUMNS</small>).
== Metadata ==
Metadata describe your dataset as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc. BioCASe can publish a lot of metadata – and you should take the time to provide as much information as you can, since this will increase the usability of your published data.
For storing metadata, please create an extra table in your database and fill it in. If you go to the BioCASe folder of your installation, you’ll find the template for this table in ''sampledb/abcdmetadata''. Either use the SQL script to create it in your database, or import it from the Access database (''metadata.mdb'').
Per default, all records of your database will make up one dataset, being described by one set of metadata. In case your database holds records of several datasets, you can also group these into several datasets in ABCD by providing different sets of metadata. So when you realize during gathering of meta-information that they’re not the same for all records, this is an indicator that your database must be grouped into several datasets.
If all records to be published share the same metadata, the metadata table needs to have just one row. If they don’t, it needs to hold several rows, one set of metadata for each dataset, identified by a unique primary key (1, 2, …). In order to associate each record of your database with the correct set of metadata, you will need to add a foreign key into the base record table that links to the respective entry in the metadata table. Ask your IT guys if you need help on that.
== Controlled Denormalisation ==
As you will see during configuration, the Provider Software is able to join together the different tables of your database’s data model in order to retrieve all information to be published from the database. This works good if the number of tables is within reasonable limits, that is up to approximately 10-15.
Data models used by off-the-shelf collection management system are usually highly normalised and use far more tables. Specify’s data model, for example, has about 70 tables. Configuring such a complex model in BioCASe will be a terrible pain; moreover, in case your database holds a huge number of records, the time required by the Provider Software for answering search request will become too long.
Therefore it is advisable in such cases to add some controlled denormalisation to your database, that is to export the data to be published into several cache tables. These tables could be stored in the same database as the source tables or separate in an extra cache database, maybe even on a different server. They could be created in a regular interval (e.g. each night) or upon request by SQL scripts.
The figure below shows this denormalisation process for the data model of Specify. On the left side, you see some of Specify’s source tables (only the ones starting with the letters A, B, C and D). With an SQL script they will be reduced to 7 cache tables, one of them being abcd_object. These tables hold only the columns that will be published, drawn from up to 15 source tables.
[[image:prepDenormalisation.png|750px|border]]
== Repeatable Elements in ABCD ==
One of the main features of ABCD (the schema you will probably use to publish your data) is repeatable elements. For example, ABCD can store multiple identifications or several URLs for multimedia objects attached to a specimen record. All these URLs will be stored in the same ABCD element – namely ''MultimediaObject/FileURI''.
You can tell repeatable elements in ABCD by the existence of a container element. For ''MultimediaObject'', for example, there is a container element ''MultimediaObjects'' one level above which will hold the (potentially) several multimedia objects:
[[File:prepMultimediaObjects.png]]
Another example is the higher taxonomy (all taxa above genus level). Typically these are stored in different columns in databases (see figure below). In ABCD, they will all end up in the same element, ''HigherTaxon/Name''. In order to be able to map the different ranks stored in columns to the same ABCD concept, we need to pivot these columns into rows – each rank kept in a column needs to be turned into a row, with two columns storing taxon name and rank, one column for linking to the according specimen record, plus one newly created primary key:
[[File:prepPivoting.png|border]]
Such a transformation can be easily done with a database view. Views do exactly what the name suggests – they provide a different view on the data. They can be used like regular tables, but they merely represent a different representation of another table. Updates of the underlying tables (or insert/deletions) will also affect views created on these tables, since the data is stored only once in the database.
Let’s assume you have the higher taxonomy stored in the specimen table like this:
[[File:prepEditTable.png]]
The SQL statement
<pre>
CREATE VIEW [dbo].[vwHigherTaxa] AS
SELECT 'k_' + [EDIT_ATBI_RecordID] AS id, [EDIT_ATBI_RecordID] AS unit_id,
[kingdom] AS name, 'kingdom' AS rank
FROM unit_data
WHERE [kingdom] IS NOT NULL
UNION ALL
SELECT 'p_' + [EDIT_ATBI_RecordID], [EDIT_ATBI_RecordID], [phylum], 'phylum'‚
FROM unit_data
WHERE [phylum] IS NOT NULL
UNION ALL
...
</pre>
will create a view that meets the requirements described above. Remember that even though it looks like a table, it’s just another representation of the data stored in the table unit_data:
[[File:prepEditView.png]]
Such pivoting must be done in all cases when several columns need to be mapped to the same (repeatable) ABCD element. If it’s just one value to be mapped, there is no need for that. Commonly used ABCD elements that are repeatable and might ask for such preparatory transformations are
* Identification
* HigherTaxon
* GatheringSite/NamedArea
* Metadata/Scope/GeoecologicalTerms
* Metadata/Scope/TaxonomicTerms
* MultimediaObjects
* MeasurementsOrFacts
If you have problems preparing your database for publication, please [[Special:Contact|contact the BioCASe team]].
7ef645f5fc3c7c7741242b7c07ca55a8ba6ffd97
File:PrepMultimediaObjects.png
6
96
483
2012-04-05T09:26:21Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Installation (French)
0
94
488
468
2012-04-06T15:20:41Z
FranckTheeten
15
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de staisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmerus de travailelr en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la docuemntations des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>.
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing) and use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python. You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
We know that configuring Python for IIS can a pain; however, there are several good tutorials on the web, for example
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
Installation
From Software Provider BioCASE
Aller à: Navigation, rechercher
Installation
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant en premier lieu.
Contenu
* 1 Prérequis
* 2 Installation de Apache / IIS et Python
* 3 Téléchargement du logiciel fournisseur de données
o 3.1 Téléchargement du fichier d'archive
o 3,2 téléchargement à partir du serveur Subversion
* 4 Exécution du script d'installation
* 5 Lier BioCASe et serveur Web
o 5.1 Apache
o Internet Information Server 5.2
* 6 Installation de paquets Python supplémentaires
* 7 Modification du mot de passe par défaut
* 8 Vérification de l'installation
Prérequis
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
1. Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
2. Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être en dehors de tout pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant (note : il n’est pas nécessaire de stasifaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement).
3. Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système de l'aide, lisez la FAQ ou prenez contact avec l'équipe BioCASe.
Installation de Apache / IIS et Python
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Quand vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
Téléchargement du logiciel fournisseur
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir de notre dépôt Subversion. La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
Téléchargement du fichier d'archive
Il suffit de télécharger l'archive à partir de la section Téléchargement du site BioCASe et décompresser le contenu du dossier de destination.
Téléchargement à partir du dépôt Subversion
Si vous utilisez Windows, vous devez installer un client Subversion premier (Tortoise , qui est livré avec une jolie interface très commode). Linux et MacOS contiennent généralement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>.
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
Exécution du script d'installation
Le script d'installation lancera les fichiers de configuration avec les valeurs que vous fournissez et liera les fichiers de script à votre installation de Python (vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement des répertoires d’Apache, Python ou du logiciel lui-même sur votre ordinateur). Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (ou «invite de commande" dans Windows, à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter »).
Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple « cd D://biocaseprovider ») et tapez:
python setup.py
Si la commande ne marche pas , vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python.
Exemple (sous Windows et DOS, en supposant que vous avez installé python dans sa version 2.5 et dans le répertoire C:\Python25. Adaptez les valeurs en fonction de la situation sur votre ordinateur)
C:\Python25\setup.py setup.py
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme décrit ci-dessus):
InstSetupScriptStart.png
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur Entrée.
Domaine Webserver: Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, http://www.moninstitution.org. Vous pouvez conserver le localhost par défaut tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) plus tard.
URL de base: Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par xemple http://moinstitution.org/monbiocase/ ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à www.myinstitution.org/biocase.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
2ffdf1ffbc50b82145a1c6bbcaa56b140536e86b
489
488
2012-04-06T17:14:20Z
FranckTheeten
15
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de staisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmerus de travailelr en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la docuemntations des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement. This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecutre depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement a lieu simplement en copiant les directives affichées à la fin du script d'installatioon dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utlisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvee le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire (Read, Write, Script Execution, Directory listing), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoisn de bonenx explciations sur le web, par exemple
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
58eacde02ead6761c1460b956e73c5adaef3848b
490
489
2012-04-10T12:51:08Z
FranckTheeten
15
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de staisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmerus de travailelr en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la docuemntations des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement. This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecutre depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement a lieu simplement en copiant les directives affichées à la fin du script d'installatioon dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utlisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvee le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine name of the machine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'acceuil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'acceuil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si lacette librairie est installée sur le système et avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe libraries sont déjà inclsues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. L librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'instllation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire bde base de donénes Relationnelle dans le jargon), vous devrez installer le packager ou driver Python correspondant. Si votre collection est par exemple stockée dans une base de Donénes MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraries dans votre navigateur. La ligne de la liste qui correspond au drviver devrait passer de l'orange pour 'non installé' à uen indication verte contenent la version de la librarie. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utlisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommendons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquaut, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'acceuil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers bionaires, car Graphviz n'est pas une libraries Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary<.small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à voitre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connection via la librairie ODBC) et que vous ne souhaitez pas utliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
beffe5eecc8d8420e283d633f4ea9a5c57fbb4d7
491
490
2012-04-10T12:51:42Z
FranckTheeten
15
/* Apache */
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de staisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmerus de travailelr en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la docuemntations des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement. This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecutre depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvee le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine name of the machine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'acceuil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'acceuil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si lacette librairie est installée sur le système et avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe libraries sont déjà inclsues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. L librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'instllation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire bde base de donénes Relationnelle dans le jargon), vous devrez installer le packager ou driver Python correspondant. Si votre collection est par exemple stockée dans une base de Donénes MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraries dans votre navigateur. La ligne de la liste qui correspond au drviver devrait passer de l'orange pour 'non installé' à uen indication verte contenent la version de la librarie. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utlisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommendons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquaut, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'acceuil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers bionaires, car Graphviz n'est pas une libraries Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary<.small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à voitre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connection via la librairie ODBC) et que vous ne souhaitez pas utliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
5fa0ffaf35ba6e9f88b89b2a9a02104153837e6b
492
491
2012-04-10T12:52:18Z
FranckTheeten
15
/* Vérifiez votre Installation */
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de staisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmerus de travailelr en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la docuemntations des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement. This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecutre depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvee le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine name of the machine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'acceuil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'acceuil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si lacette librairie est installée sur le système et avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe libraries sont déjà inclsues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. L librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'instllation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire bde base de donénes Relationnelle dans le jargon), vous devrez installer le packager ou driver Python correspondant. Si votre collection est par exemple stockée dans une base de Donénes MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraries dans votre navigateur. La ligne de la liste qui correspond au drviver devrait passer de l'orange pour 'non installé' à uen indication verte contenent la version de la librarie. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utlisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommendons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquaut, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'acceuil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers bionaires, car Graphviz n'est pas une libraries Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary<.small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à voitre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[##Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connection via la librairie ODBC) et que vous ne souhaitez pas utliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
bc9dc4ca2d66deb1a406f5189dd0cfa91573341a
493
492
2012-04-10T12:52:52Z
FranckTheeten
15
/* Vérifiez votre Installation */
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de staisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fontionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmerus de travailelr en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la docuemntations des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (préinstallé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de l’intepréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement. This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecutre depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvee le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine name of the machine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'acceuil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'acceuil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si lacette librairie est installée sur le système et avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe libraries sont déjà inclsues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. L librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'instllation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire bde base de donénes Relationnelle dans le jargon), vous devrez installer le packager ou driver Python correspondant. Si votre collection est par exemple stockée dans une base de Donénes MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraries dans votre navigateur. La ligne de la liste qui correspond au drviver devrait passer de l'orange pour 'non installé' à uen indication verte contenent la version de la librarie. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utlisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommendons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquaut, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'acceuil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers bionaires, car Graphviz n'est pas une libraries Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary<.small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à voitre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connection via la librairie ODBC) et que vous ne souhaitez pas utliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
6a9ca42ffc94164ee709d9a0d8fd8a8e1650a90a
494
493
2012-04-10T12:58:52Z
FranckTheeten
15
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary<.small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
fa0ca5ba40076cc77473359efff7da8a7b598d48
495
494
2012-04-10T12:59:16Z
FranckTheeten
15
/* Changer le mot de passe par défaut */
wikitext
text/x-wiki
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
4a5d0e0d1434f8cce663d0279235ca07be299105
496
495
2012-04-10T13:01:02Z
FranckTheeten
15
wikitext
text/x-wiki
'''Traduction: Franck Theeten
Musée Royal de l'Afrique Centrale de Tervuren
Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
9aff168e90d93465700867c27e2c46005f19dc7c
497
496
2012-04-10T13:01:38Z
FranckTheeten
15
wikitext
text/x-wiki
'''Traduction: Franck Theeten
Musée Royal de l'Afrique Centrale de Tervuren
Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
91cd79887b258b48f9af9c19df6a28369b360368
498
497
2012-04-10T13:02:30Z
FranckTheeten
15
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS (par exemple si votre provider est installé à l'emplacement ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
23ef0a3744c77a90466d9863c72f1e014d608a2e
BeginnersGuide (French)
0
93
500
465
2012-04-10T15:16:35Z
FranckTheeten
15
wikitext
text/x-wiki
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware (c'est à direlogiciel placé à une position intermédiaire entre une base de données et une interface graphique) produisant des données en XML, afin de le publier sur un réseau d'information scientifique. Après avoir installé BioCASe et l'avoir configuré pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe est avant tout un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web servcies n'ont pas besoind e connaître la strucutre de la base de données pour fonctionner. Il peut être aussi utilisé avec n'importe quel type de schéma conceptuel de données au niveau XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI pour se connecter à des bases de données écrite en Python. Il petmet un accès standardisé (c'est à dire via des procédures uniformes qui peuevnt être ainsi partagée par tous els acturs d'unr éseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données content des spécimen ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelle (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL''', et dont le modèle de données est bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de donénes non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permenante depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébérgement (même s'il est parfois pénible dans le second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connection commutée (peer to peer ou 'Dial-up') ne fonctionnera pas. Notez qu'il est tout à fait possuble à des fins d'entraînement, de formation ou de développment, d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BiocASe dessus. Il sera alors accessible localement pour l'ordinateur seum (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des libraires ou paquets complémentaires Python. Cela peut être fait par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigeur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous avez encore besoin d'information avant de prendre une décicion), vous devez exécutez les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir une réponse à la question de la propriété des données et des termes d'utlsiation, licences, copyright et restrictions dans l'utlisation qui valent pour les données publiées. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées (une solution possible est de soustraire certaines occurrence du jeu de données publier ou de rendre moins précise une information exacte sur la localité d'observation).
# Préparez la base de données comme décrit dand le tutoriel [[Preparation]]. Il faut alors décider de publier soit directement la base de données principale qui est utlisée pour les mises à jour, soit un 'snapshot' (une copie de tout ou une partie des données prise à un moment précis), de créer uen table de métadonnées (informations sur la base de donénes elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et debuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
b5c105a794add2107fdae6e4812cfec119a2ba2f
501
500
2012-04-10T15:20:08Z
FranckTheeten
15
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelle (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL''', et dont le modèle de données est bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de donénes non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permenante depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébérgement (même s'il est parfois pénible dans le second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connection commutée (peer to peer ou 'Dial-up') ne fonctionnera pas. Notez qu'il est tout à fait possuble à des fins d'entraînement, de formation ou de développment, d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BiocASe dessus. Il sera alors accessible localement pour l'ordinateur seum (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des libraires ou paquets complémentaires Python. Cela peut être fait par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigeur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous avez encore besoin d'information avant de prendre une décicion), vous devez exécutez les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir une réponse à la question de la propriété des données et des termes d'utlsiation, licences, copyright et restrictions dans l'utlisation qui valent pour les données publiées. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées (une solution possible est de soustraire certaines occurrence du jeu de données publier ou de rendre moins précise une information exacte sur la localité d'observation).
# Préparez la base de données comme décrit dand le tutoriel [[Preparation]]. Il faut alors décider de publier soit directement la base de données principale qui est utlisée pour les mises à jour, soit un 'snapshot' (une copie de tout ou une partie des données prise à un moment précis), de créer uen table de métadonnées (informations sur la base de donénes elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et debuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
973ad2f0d51c9df3ba1dbc516b38dac15c16a064
502
501
2012-04-10T15:21:50Z
FranckTheeten
15
/* Prérequis pour utiliser le BPS */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permenante depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébérgement (même s'il est parfois pénible dans le second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connection commutée (peer to peer ou 'Dial-up') ne fonctionnera pas. Notez qu'il est tout à fait possuble à des fins d'entraînement, de formation ou de développment, d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BiocASe dessus. Il sera alors accessible localement pour l'ordinateur seum (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des libraires ou paquets complémentaires Python. Cela peut être fait par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigeur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous avez encore besoin d'information avant de prendre une décicion), vous devez exécutez les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir une réponse à la question de la propriété des données et des termes d'utlsiation, licences, copyright et restrictions dans l'utlisation qui valent pour les données publiées. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées (une solution possible est de soustraire certaines occurrence du jeu de données publier ou de rendre moins précise une information exacte sur la localité d'observation).
# Préparez la base de données comme décrit dand le tutoriel [[Preparation]]. Il faut alors décider de publier soit directement la base de données principale qui est utlisée pour les mises à jour, soit un 'snapshot' (une copie de tout ou une partie des données prise à un moment précis), de créer uen table de métadonnées (informations sur la base de donénes elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et debuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
c98659beda65595d54804e273ea89cfe5c016689
503
502
2012-04-10T15:26:28Z
FranckTheeten
15
/* Prérequis pour utiliser le BPS */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement (il est parfois pénible dans le second cas d'obtenir les droits d'installation auprès d'un service d'hébergement). Une connexion commutée (peer to peer ou 'Dial-up') ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être fait par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous avez encore besoin d'information avant de prendre une décicion), vous devez exécutez les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir une réponse à la question de la propriété des données et des termes d'utlsiation, licences, copyright et restrictions dans l'utlisation qui valent pour les données publiées. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées (une solution possible est de soustraire certaines occurrence du jeu de données publier ou de rendre moins précise une information exacte sur la localité d'observation).
# Préparez la base de données comme décrit dand le tutoriel [[Preparation]]. Il faut alors décider de publier soit directement la base de données principale qui est utlisée pour les mises à jour, soit un 'snapshot' (une copie de tout ou une partie des données prise à un moment précis), de créer uen table de métadonnées (informations sur la base de donénes elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et debuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
fa660f38bcce53c4db95d0cd69292a3e881bfdc8
504
503
2012-04-10T15:26:51Z
FranckTheeten
15
/* Prérequis pour utiliser le BPS */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement (il est parfois pénible dans le second cas d'obtenir les droits d'installation auprès d'un service d'hébergement). Une connexion commutée (peer to peer ou 'Dial-up') ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous avez encore besoin d'information avant de prendre une décicion), vous devez exécutez les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir une réponse à la question de la propriété des données et des termes d'utlsiation, licences, copyright et restrictions dans l'utlisation qui valent pour les données publiées. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées (une solution possible est de soustraire certaines occurrence du jeu de données publier ou de rendre moins précise une information exacte sur la localité d'observation).
# Préparez la base de données comme décrit dand le tutoriel [[Preparation]]. Il faut alors décider de publier soit directement la base de données principale qui est utlisée pour les mises à jour, soit un 'snapshot' (une copie de tout ou une partie des données prise à un moment précis), de créer uen table de métadonnées (informations sur la base de donénes elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et debuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
3a86e35d31ab9e35858325d92a6da2757415aaed
505
504
2012-04-10T15:28:22Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement (il est parfois pénible dans le second cas d'obtenir les droits d'installation auprès d'un service d'hébergement). Une connexion commutée (peer to peer ou 'Dial-up') ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées (une solution possible est de soustraire certaines occurrence du jeu de données publier ou de rendre moins précise une information exacte sur la localité d'observation).
# Préparez la base de données comme décrit dand le tutoriel [[Preparation]]. Il faut alors décider de publier soit directement la base de données principale qui est utlisée pour les mises à jour, soit un 'snapshot' (une copie de tout ou une partie des données prise à un moment précis), de créer uen table de métadonnées (informations sur la base de donénes elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et debuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
354a8d09fb9ad135421c46cb912ec0d541747584
506
505
2012-04-10T15:29:53Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement (il est parfois pénible dans le second cas d'obtenir les droits d'installation auprès d'un service d'hébergement). Une connexion commutée (peer to peer ou 'Dial-up') ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
ad20b85e694d64fe8a539d6fe601b66f88ad2efa
507
506
2012-04-10T15:30:44Z
FranckTheeten
15
/* Prérequis pour utiliser le BPS */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
23e51149372841470758a8fc65dbe7118254f4c7
508
507
2012-04-10T15:31:05Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
8ebf9b55e6689d69c9f560b3d5aea3907a85f132
509
508
2012-04-10T15:31:42Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French) Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
0a5c64e25dfb5f1f2693f0d88e3e36d1b15d7d43
510
509
2012-04-10T15:32:14Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe dans le logiciel et connectez-le à votre base de données. Configuez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
dc163bdfc03c8c82b89136456128a787f4a7b1b4
511
510
2012-04-10T15:32:42Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping pour créer un mapping]] pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
01f399dda50948a6a132ed256396b62493a638a3
512
511
2012-04-10T15:33:50Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping| ABCD2Mapping pour créer un mapping]] (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
cc06906c0ea31f36aa3c717a427073c683e687c9
513
512
2012-04-10T15:34:32Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pur l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
a1efae05a71683654fbe3610b1e16abea67b5dac
514
513
2012-04-10T15:34:49Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suiviez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
c67b503f4f93d90980f8a60067fc70a8dfdcc98e
515
514
2012-04-10T15:34:59Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suivez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le wen service BioCASe auprès du réseau sur lequel vous souhaitez publiser vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service nous pourrons alors diagnistiquer des problèmes plus compliqué à résoudre après cet enregistrement.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
839df2bea1a0576a0a8130712d444341779fe93a
516
515
2012-04-10T15:36:22Z
FranckTheeten
15
/* Etapes */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suivez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le web service BioCASe auprès du réseau sur lequel vous souhaitez publier vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service. Ils pourront alors diagnostiquer lors de cette étape préalable des problèmes éventuels qui seraient plus compliqués à résoudre après l'enregistrement à un réseau.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, sous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
b59af061b98b09a7b965eecb130e9e982e64a56b
517
516
2012-04-10T15:36:36Z
FranckTheeten
15
/* Support */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suivez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le web service BioCASe auprès du réseau sur lequel vous souhaitez publier vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service. Ils pourront alors diagnostiquer lors de cette étape préalable des problèmes éventuels qui seraient plus compliqués à résoudre après l'enregistrement à un réseau.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, vous devriez:
* jeter un oeil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
1a278848ef623de4decb522e65d212c37d3c7236
518
517
2012-04-10T15:36:48Z
FranckTheeten
15
/* Support */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suivez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le web service BioCASe auprès du réseau sur lequel vous souhaitez publier vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service. Ils pourront alors diagnostiquer lors de cette étape préalable des problèmes éventuels qui seraient plus compliqués à résoudre après l'enregistrement à un réseau.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, vous devriez:
* jeter un œil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|BioCASe team]], qui est plutôt anglophone.
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommendé d'envoyer des copies d'écran à vos interlocuteurs pour ce type de problème.
0b8ba3d69a0d64a98c1314a82e763b7711bc9aff
BeginnersGuide (French)
0
93
519
518
2012-04-10T15:38:11Z
FranckTheeten
15
/* Support */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suivez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le web service BioCASe auprès du réseau sur lequel vous souhaitez publier vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service. Ils pourront alors diagnostiquer lors de cette étape préalable des problèmes éventuels qui seraient plus compliqués à résoudre après l'enregistrement à un réseau.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, vous devriez:
* jeter un œil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|équipe BioCASe]](qui est plutôt anglophone mais peut si nécessaire transmettre des questions en français à des techniciens francophones).
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommandé d'envoyer des '''copies d'écran''' à vos interlocuteurs pour faciltier l'identification du problème.
2d970cd8efcf88f26c3391032c7bb3ebd60875c8
520
519
2012-04-10T15:38:25Z
FranckTheeten
15
/* Support */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement, . Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suivez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le web service BioCASe auprès du réseau sur lequel vous souhaitez publier vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service. Ils pourront alors diagnostiquer lors de cette étape préalable des problèmes éventuels qui seraient plus compliqués à résoudre après l'enregistrement à un réseau.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, vous devriez:
* jeter un œil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|équipe BioCASe]](qui est plutôt anglophone mais peut si nécessaire transmettre des questions en français à des techniciens francophones).
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommandé d'envoyer des '''copies d'écran''' à vos interlocuteurs pour faciliter l'identification du problème.
b7bae62a0e9075e4f47c45853922d3ff09c39664
551
520
2012-04-10T16:18:10Z
FranckTheeten
15
/* Prérequis pour utiliser le BPS */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
== Qu'est ce que le Logiciel Fournisseur de données BioCASe? ==
Le logiciel fournisseur de données BioCASe (abrégé '''BPS'' pour '''BioCASe Provider Software''' en anglais ) est un middleware, c'est à dire un logiciel situéà une position intermédiaire entre une base de données et une interface graphique. Il produit des données en XML, afin de les publier sur un réseau d'information scientifique. Après l'installation de BioCASe et sa configuration pour un type de base de données particulier, l'information publiée sera accessible sous la forme d'un web service de type BioCASe. Cela veut dire que l'information pourra être interrogée et recherchée avec des requêtes au format BioCASe, car BioCASe désigne également un protocole XML pour envoyer des messages à un web service. L'intérêt de ce type de logiciel est qu'il est "agnostique" par rapport au modèle de données de la base de données d'origine, c'est à dire que les requêtes envoyées au web services n'ont pas besoin de connaître la structure de la base de données pour fonctionner. Il peut être également utilisé avec n'importe quel type de schéma conceptuel de données en XML.
Le BPS est un ensemble d'outils qui doivent être installée sur un serveur Web installé chez le fournisseur de données. Son composant central est le '''PyWrapper''', une interface XML/CGI, écrite en Python, pour se connecter à des bases de données . Il permet un accès standardisé (c'est à dire via des procédures uniformes qui peuvent être ainsi partagée par tous les acteurs d'un réseau d'information) à une large gamme de systèmes de base de données dont la structure est arbitraire (c'est à dire définie par le fournisseur de données seul). Un certain nombre d'outils est réuni autour du BPS pour configurer, tester et débugger une installation ou un web service BioCASe.
Même si BioCASe peut être utilisé avec n'importe quel schéma conceptuel défini en XML, son domaine de prédilection est la publication de données d'occurrence provenant de bases de données contenant des spécimens ou des observations sur des réseaux d'information primaire sur la biodiversité, comme le [http://www.biocase.org réseau BioCASe] et le [http://www.gbif.org GBIF (Global Biodiversity Information Facility)].
== Prérequis pour utiliser le BPS ==
Avant d'utiliser le logiciel fournisseur de données BioCASe, trois conditions doivent être vérifiées:
* D'une part, les données à publier doivent être stockées dans une système gestionnaires de base de données relationnelles (parfois abrégé '''SGBDR''' ou '''RDBMS''' en anglais) compatible avec le langage '''SQL'''. Son modèle de données doit être bien documenté, ou, au minimum, présent à l'esprit d'un gestionnaire de données. Les bases de données non compatibles avec SQL ne sont pas supportées par BioCASe. Actuellement, le logiciel peut se connecter au bases de données suivantes: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* Pour installer BioCASe, vous devez avoir un logiciel de serveur Web (Apache ou Microsoft IIS) accessible en permanence depuis l'Internet. Cela peut être le serveur d'une institution académique ou scientifique, ou un service d'hébergement. Il est parfois pénible dans ce second cas d'obtenir les droits d'installation auprès d'un service d'hébergement. Une connexion commutée peer to peer ou 'Dial-up' ne fonctionnera pas. Notez qu'il est tout à fait possible d'installer un serveur Internet sur votre propre machine, isolé du reste de l'Internet, et de faire fonctionner BioCASe dessus à des fins d'entraînement, de formation ou de développement. Il sera alors accessible localement pour l'ordinateur seul (via le nom http://localhost ou l'adresse IP réservée 127.0.0.1)
* Vous devez avoir la possibilité d'installer Python sur le serveur web en question (si jamais ce n'est pas le cas) ainsi que des librairies ou paquets complémentaires Python. Cela peut être effectué relativement facilement par un informaticien ou quelqu'un ayant de bonnes connaissances techniques, mais assurez vous que cela ne pose pas problèmes par rapport aux procédures et règles techniques qui pourraient être en vigueur dans votre institution.
== Etapes ==
Une fois que vous vous êtes assurez que le BioCASe Provider Software est un choix pertinent pour vos besoins ([[Special:Contact|contactez l'équipe BioCASe]] si vous souhaitez plus d'information avant de prendre une décision), vous devez exécuter les étapes suivantes:
# Pensez à l'information que vous souhaitez publier sur le réseau. Cela implique d'avoir réfléchi et répondu à la question de la propriété des données et des termes d'utilisation, licences, copyright et restrictions dans l'utilisation qui s'appliquent à leur publication. Vous devriez aussi vous demander si certaines information ne devraient '''pas''' être publiées car cela pourrait avoir une conséquence sur des espèces menacées. une solution possible est de soustraire certaines occurrence du jeu de données publier, ou de rendre moins précise une information exacte sur la localité d'observation.
# Préparez la base de données comme décrit dans le tutoriel [[Preparation]]. C'est à cette étape que doit être prise la décision de publier soit directement la base de données principale qui est utilisée pour les mises à jour, soit un 'snapshot' (c'est à dire une copie de tout ou une partie des données prise à un moment précis), de créer une table de métadonnées (informations sur la base de données elle-même) et, dans certains cas, de transformer la présentation des données.
# Suivez le tutoriel d'[[Installation_(French)|Installation]] pour installer le Fournisseur de données BioCASe.
# Configurez un jeu de données BioCASe viale logiciel et connectez-le à votre base de données. Configurez alors le jeu de données comme décrit dans le tutoriel [[DatasourceSetup]].
# Suivez le tutoriel [[ABCD2Mapping| ABCD2Mapping (pour l'instant en anglais)]] pour créer un mapping (un mapping est une correspondance entre la structure de votre bases de données et un schéma XML) pour le schéma de données (par exemple DarwinCore ou ABCD) que vous voulez utiliser.
# Testez et débuggez votre web service BioCASe. Lisez le tutoriel [[Debugging]] pour plus d'informations à ce sujet.
# Quand vous avez terminé avec l'installation et la configuration du BioCASE Provider Software, vous pouvez enregistrer le web service BioCASe auprès du réseau sur lequel vous souhaitez publier vos données, par exemple le [http://www.gbif.org GBIF]. Nous vous recommandons de contacter l'[[Special:Contact|équipe BioCASe]] pour vérifier au préalable votre web service. Ils pourront alors diagnostiquer lors de cette étape préalable des problèmes éventuels qui seraient plus compliqués à résoudre après l'enregistrement à un réseau.
== Support ==
En cas de difficultés lors de l'installation et de la configuration, vous devriez:
* jeter un œil sur le [[FAQ]] qui contient peut-être une réponse à votre question
* demander l'aide au staff technique d'un projet lié à BioCASe (comme CABIN ou OpenUp!)
* demander l'aide d'autres utilisateurs de BioCASe
* contacter l'[[Special:Contact|équipe BioCASe]](qui est plutôt anglophone mais peut si nécessaire transmettre des questions en français à des techniciens francophones).
Décrivez le plus précisément possible votre environnement (système d'exploitation et système de bases de données utlisés), l'étape où le problème apparaît, et tous les messages d'erreurs ou informations techniques retourné par le logiciel. Il est recommandé d'envoyer des '''copies d'écran''' à vos interlocuteurs pour faciliter l'identification du problème.
d1ba98ffcf2846a72d70a18b9db3bbf110f5d2c8
Installation (French)
0
94
521
498
2012-04-10T15:39:14Z
FranckTheeten
15
/* Exécution du script d'installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement tapez ''D:\\biocase''<pre>D:</pre><pre>cd D://biocase</pre>. Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
1a54e1a585a1e0f5256ae2878b8549fd5c162eaa
522
521
2012-04-10T15:39:49Z
FranckTheeten
15
/* Exécution du script d'installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Exemple sous Windows et DOS, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
c49cc57a8f8b186da97ca6d1333df73340dbfdd9
523
522
2012-04-10T15:40:36Z
FranckTheeten
15
/* Exécution du script d'installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python donnée dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
05ee4ed2055f71077d27c7b1489a78aea7d97fe1
524
523
2012-04-10T15:41:01Z
FranckTheeten
15
/* Exécution du script d'installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connection à une base de donénes), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modificables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les Logs (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utlsiateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
f5a49598bc98245e299809a2db51fb49c8a5ac15
525
524
2012-04-10T15:41:30Z
FranckTheeten
15
/* Vérifiez votre Installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Taper ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Sinon, le chemin vers le fichier posent problème sera montré –. Veuillez vous assurer que Python et.ou Apache peuvent écrire sur ce fichier (par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data' <pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>).
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
f9c05088ba28df4cf412fdb302005de40543a37d
526
525
2012-04-10T15:42:36Z
FranckTheeten
15
/* Vérifiez votre Installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier posent problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
931010c2b88343040fa389b118a5ee2605a96e34
527
526
2012-04-10T15:43:09Z
FranckTheeten
15
/* Vérifiez votre Installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les pramètres du BPS. A la fin de la procédure de configuration, vous devriez changer le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la magde Configuration dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation (nosu supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''). A la quatrième ligne, vous pouvez encoder un nouveau mot de passe. Soyez précautionneux en le tapant (si jamais vous l'oubliez, il est toujours possible de le réintialiser en modifiant directement le fichier de configuration). Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sut votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''), sous Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
296e0d7101a936f021839ae9b080a0e14d4c829f
528
527
2012-04-10T15:45:30Z
FranckTheeten
15
/* Changer le mot de passe par défaut */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du logiciel utilisé pour la base de données à publier et des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes), qui indique également si cette librairie est présente sur le système et, si ou, dans quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
cc8481241743f0c631032dd207532f22b7bd38b7
529
528
2012-04-10T15:47:01Z
FranckTheeten
15
/* Installer les paquets additionnels Python */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dite sont déjà inclues dans le fichier d'archive que vous avez installé ou bien le répertoire Subversion d'où vous êtes partis. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos don"nes sur le Web) – ainsi si vous n'envisagez pas de l'utiliser il n'est pas nécessaire de l'installer. Sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation et installez 4SuiteXML à partir du fichier téléchargé.
Néanmoins, Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de donénes . Il doit être installé et configuré non pas au niveau de BioCASe, mais à celui de l'environnement Python; mais néanmoins le BPS peut vous guider dans leur installation. Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
eea83dfddadf9a949646fb3d9cbe18820540de8d
530
529
2012-04-10T15:49:04Z
FranckTheeten
15
/* Installer les paquets additionnels Python */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données MySQL, cliquez sur le lien pour télécharger le module MySQL, trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
f6fb33215a302ded5d08a3e4519093df4ed5c988
531
530
2012-04-10T15:49:42Z
FranckTheeten
15
/* Installer les paquets additionnels Python */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
039c63e47629a64cb26d493e053e440fbae16e6a
532
531
2012-04-10T15:50:09Z
FranckTheeten
15
/* Installer les paquets additionnels Python */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utlisez IIS vous devez créer d'abord un répertoire virtuel pour le répertoire physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'), utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier .cgi and .py avec le chemin de votre fichier exécutable Python. Vous devriez aussi aussi ajouter ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmons de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
9584a82c0c903067b59f2a72374fbd12f27226e7
533
532
2012-04-10T15:51:32Z
FranckTheeten
15
/* Internet Information Server (IIS) */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur et permettre au modne extérieur de voir vos fichiers de configuration (qui incluent des mots de passe). Ainsi si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre server est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
eb455d35f3d72827b24b6b691d3321ac3e609feb
534
533
2012-04-10T15:52:50Z
FranckTheeten
15
/* Configurer votre serveur Web pour BioCASe */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
2e29af765a57f6ec0ed7ae59c63b9c2853863a0a
535
534
2012-04-10T15:55:44Z
FranckTheeten
15
/* Configurer votre serveur Web pour BioCASe */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache. Si vous installer BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
86ec2f5f59d5c759cf5980ecc9c26110acce1114
536
535
2012-04-10T15:57:45Z
FranckTheeten
15
/* Apache */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
aa93afff5c97d0b32cac79ea3e752a95a4abc2d6
537
536
2012-04-10T15:58:44Z
FranckTheeten
15
/* Apache */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le Guide du Débutant [[BeginnersGuide|Beginner’s Guide]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
72854aea4a8d0171a006511a18710e1125493c23
538
537
2012-04-10T16:03:36Z
FranckTheeten
15
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit soit être à l'extérieur d'un pare-feu institutionnel ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
028c77d345e62eae1b7a38da6a392cb2a613fd07
539
538
2012-04-10T16:04:15Z
FranckTheeten
15
/* Prérequis */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine à la base de données à publier - soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
5a49a334a48ed30478991ca3b620a2c38e068ef5
540
539
2012-04-10T16:05:00Z
FranckTheeten
15
/* Prérequis */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
f37e8511def710e7836359d8f85e92726673634c
541
540
2012-04-10T16:06:12Z
FranckTheeten
15
/* Installation de Apache / IIS et Python */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est de 2.5 Python (en fait la dernière sous-version stable de la branche 2.5: 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
c2e3187a1cc31d3ac1e5ddfa098e086cbb25b4a8
542
541
2012-04-10T16:07:01Z
FranckTheeten
15
/* Installation de Apache / IIS et Python */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le bib site Web (par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5). Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous faites l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier Program Files par défaut. En effet à cet endroit le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
a7e4ff014ddc3eff4bb41390696e186ec852b56e
544
542
2012-04-10T16:09:28Z
FranckTheeten
15
/* Installation de Apache / IIS et Python */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit comme une archive zippée g-ou directement à partir du Subversion du BGBM (Subversion ou SVN est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
86f0b0cd3c297a8def68700f2e5aa082d63af311
545
544
2012-04-10T16:10:04Z
FranckTheeten
15
/* Téléchargement du logiciel fournisseur */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion avant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production, qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
89ed90867fbdfd460dcec852fc823b04ed6c309f
546
545
2012-04-10T16:10:47Z
FranckTheeten
15
/* Téléchargement du logiciel fournisseur */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion auparavant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites ub clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
9080c3de4a8a5a8c242070812d29089b01d8d1c1
547
546
2012-04-10T16:12:08Z
FranckTheeten
15
/* Téléchargement à partir du dépôt Subversion */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion auparavant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites un clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
c33985cf970d8ec4a3c38078c95e648dadfb30b4
548
547
2012-04-10T16:13:11Z
FranckTheeten
15
/* Téléchargement du logiciel fournisseur */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur de données BioCASe ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion auparavant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites un clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installayion) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau le script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ». Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
d7dd8fc605bc5827bdb7b68bdfab6c97bc2587b6
549
548
2012-04-10T16:13:59Z
FranckTheeten
15
/* Exécution du script d'installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur de données BioCASe ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion auparavant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites un clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installation) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau ce script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ».
Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais pour une machine la production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
e1b5add66b26696715fcb009315cd16cb7813783
550
549
2012-04-10T16:14:32Z
FranckTheeten
15
/* Exécution du script d'installation */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur de données BioCASe ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion auparavant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites un clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installation) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau ce script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ».
Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais, pour une machine en production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez finalement les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python. Vous devriez ajouter également ''index.html'' à la des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://www.ecp.cc/pyiis.html
* http://support.microsoft.com/kb/276494
* http://python.markrowsoft.com/iiswse.asp
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
98e565fd16c9235d1c13e9fb09dd5fafda763a5f
555
550
2012-04-12T14:03:41Z
FranckTheeten
15
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur de données BioCASe ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion auparavant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites un clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installation) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau ce script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ».
Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais, pour une machine en production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Vous devriez ajouter également ''index.html'' à la liste des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Pour associer les scripts Python avec Python dans les versions 5 et 6 d'IIS, utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python (Voyez la copie d'écran ci-dessous).
[[File:instAddScriptMap.png|330px]]
Avec la version 7, vous pouvez ouvrir cette fenêtre en allant sur <small>Add Script Map</small>. Notez les "%s%s" après l'emplacement du Python, qui indiquent des emplacement réservés pour les paramètres.
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
ac69d49b31bb1a7cfd57c89fc4ec2be054f41797
556
555
2012-04-12T14:04:49Z
FranckTheeten
15
/* Internet Information Server (IIS) */
wikitext
text/x-wiki
'''Traduction: Franck Theeten'''
'''Musée Royal de l'Afrique Centrale de Tervuren'''
'''Pour le projet CABIN (Central African Biodiversity Information Network)'''
Cette partie du Wiki explique comment installer le logiciel fournisseur de données BioCASe (‘BioCASe Provider Software’ aussi appelé "BPS"). Cela devrait prendre entre 15 et 60 minutes en fonction de votre degré de familiarité avec Python et Apache. Si vous êtes un débutant, veuillez lire le [[BeginnersGuide_(French)|Guide du Débutant]] en premier lieu.
== Prérequis ==
Avant de commencer l’installation, assurez-vous que le système sur lequel vous avez l'intention d'installer le BPS remplit les conditions suivantes:
# Vous avez des privilèges d'administrateur sur cette machine, c'est à dire les droits d'utilisateur pour installer de nouveaux logiciels.
# Il est accessible de l'extérieur de votre établissement. Cela signifie qu'il doit, soit être à l'extérieur d'un pare-feu institutionnel, ou que, plus probablement, le port HTTP pour un accès Web est ouvert pour un pare-feu existant [note : il n’est pas nécessaire de satisfaire cette condition si vous installez BioCASe a des fins de test ou sur votre propre ordinateur pour vous entraîner individuellement].
# Une connexion directe peut être établie à partir de cette machine vers la base de données à publier, soit parce qu'il n'y a pas de pare-feu entre les deux, ou bien que le port utilisé par le SGBD est ouvert (par exemple 3306 pour MySQL, 5432 pour PostGres, 1433 pour Microsoft SQL Server). Si le logiciel BioCASe est installé sur la même machine que le serveur de base de données, le pare-feu n’a normalement pas à être ouvert.
Si une de ces conditions n'est pas remplie, veuillez contacter votre administrateur système pour de l'aide, lisez la [[FAQ]] ou [[Special:Contact|prenez contact avec l'équipe BioCASe]].
== Installation de Apache / IIS et Python ==
Si vous utilisez un système Linux, vous n'avez probablement pas besoin d'installer ces logiciels, car Apache et Python sont généralement préinstallés. Il en va de même pour MacOS X, mais vous devriez malgré tout jeter un oeil aux discussions et à la documentations accessible sur le web pour obtenir plus d'information sur les emplacements de fichiers dans le système que vous utilisez.
Même si le provider fonctionne avec Apache et Internet Information Server (IIS) de Microsoft , nous vous recommandons d'utiliser Apache, qui est beaucoup plus facile à configurer. Toutefois, si vous utilisez déjà IIS, vous souhaitez peut-être le conserver. Les versions d'Apache recommandées sont 2.0 et 2.2.
Le BPS nécessite la version 2.5 de Python afin de fonctionner. Même s’il peut fonctionner également avec les versions 2.6 et 2.7, la version recommandée est Python 2.5 (en fait il s'agît plutôt de la dernière sous-version stable de la branche 2.5, que nous notons 2.5+). Pour les versions ultérieures, les librairies nécessaires pour la connexion du BPS à la base de données utilisé ne sont peut être pas encore disponible. Vous pouvez aller à la [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi page de test des librairies de l'installation du Musée et Jardin Botanique de Berlin] pour vous procurer le paquet d'installation du driver de votre base de données, et vérifier sa disponibilité pour de nouvelles versions de Python sur le site Web du driver(par exemple, la bibliothèque 4SuiteXML utilisée pour l'exécution de l’interface de requête locale est actuellement uniquement disponibles pour Python 2.5).
Soit dit en passant: vous pouvez installer plusieurs versions différentes de Python sur la même machine sans conflits.
Si vous effectuez l’installation sur un ordinateur Windows Vista ou Windows 7, nous vous recommandons de ne pas installer Apache dans le dossier ''C:/Program Files'' par défaut.
En effet, lorsqu'il est placé à cet endroit, le serveur Apache a un comportement imprévisible qui peut vous causer des ennuis lors de la modification de fichiers de configuration. Il suffit de choisir un autre chemin (par exemple C:\\Apache22 ou D:\\Apache22) pour parer à cet inconvénient.
Dès que vous avez installé avec succès Apache et Python, vous pouvez procéder à l'étape suivante.
== Téléchargement du logiciel fournisseur de données BioCASe ==
Vous pouvez télécharger le BPS soit sous forme d'archive zippée, ou directement à partir du Subversion du BGBM (Subversion ou ''SVN'' est un logiciel qui permet à plusieurs programmeurs de travailler en parallèles sur le même code, il facilite aussi l'archivage des versions du code et la documentation des changements en les stockant sur un réseau). La première option est la plus facile si vous n'êtes pas familier avec Subversion. Avec la deuxième option, il sera plus facile de mettre à jour votre installation ultérieurement. Si vous n'avez jamais utilisé Subversion auparavant et ne prévoyez pas de mise à jour régulière de votre installation, choisissez l'archive. Mais si vous prévoyez de mettre en place une installation de production qui devrait être mise à jour, vous devriez opter plutôt pour le dépôt Subversion.
=== Téléchargement du fichier d'archive ===
Il suffit de télécharger l'archive à partir de la partie [http://www.biocase.org/products/provider_software Téléchargement] du site BioCASe et de décompresser le contenu du dossier de destination.
=== Téléchargement à partir du dépôt Subversion ===
Si vous utilisez Windows, vous devez installer un client Subversion premier (vous pouvez essayer [http://tortoisesvn.net Tortoise], qui est livré avec une jolie interface très commode). Linux et MacOS contiennent habituellement un client Subversion préinstallé.
L'URL de la dernière version stable est http://ww2.biocase.org/svn/bps2/branches/stable, que nous vous recommandons d'utiliser. La mise à jour de votre installation avec la dernière version BPS est alors facile, et revient à exécuter la commande « update » de Subversion. Si vous voulez télécharger une version définie, l'URL serait (exemple dans le cas de la version 2.6.0) http://ww2.biocase.org/svn/bps2/tags/release_2.6.0 .
Pour télécharger le BPS avec le client Subversion en ligne de commande (pré-installé sur Linux / MacOS), allez simplement au répertoire sur lequel vous voulez décompressez l’archive et introduisez : <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>
Vous vous connectez alors au serveur du Jardin et Musée Botanique de Berlin avec un accès anonyme et télécharger tous les fichiers du sous-répertoire ''biocase''. Dans le cas où vous utilisez Tortoise sous Windows, faites un clic-droit sur le répertoire de destination dans l'explorateur Windows et choisissez «<small>Checkout</small>». Introduisez l'URL (http://ww2.biocase.org/svn/bps2/branches/stable), changez le nom du dossier de destination sur votre machine pour qu’il soit significatif et facilement reconnaissable par vous et appuyez sur OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
Nous supposerons dans la suite de cette explication que vous avez installé le logiciel BPS dans un dossier nommé BioCASe, qui devrait ressembler à ceci maintenant:
[[image:instBiocaseFolder.png|480px]]
== Exécution du script d'installation ==
Le script d'installation va paramétrer les fichiers de configuration avec les valeurs que vous lui fournissez (en fonction de votre installation) et lier les fichiers de script à votre installation de Python. Vous pouvez ré-exécuter le script de configuration dans le cas où vous modifiez l’emplacement d’Apache, Python ou du logiciel BioCASe lui-même sur votre ordinateur. Si vous souhaitez modifier ou corriger l'un des paramètres que vous avez déclarés pendant l'installation, vous pouvez également changer les valeurs en relançant à nouveau ce script d’installation.
Pour exécuter le script, ouvrez une fenêtre de terminal (appelée «invite de commande", "commandes MS-DOS" ou encore "command prompt" en anglais dans Windows) à laquelle vous pouvez accéder sur Windows via le sous-menu « accessoire » du menu général, ou bien en tapant «cmd» dans le menu « exécuter ».
Changez le répertoire de travail vers le dossier que vous avez téléchargé le BPS P Oar exemple si votre provider est installé à l'emplacement ''D:\\biocase'' tapez <pre>D:</pre><pre>cd D://biocase</pre> Tapez ensuite:<pre>python setup.py</pre>
Si la commande ne marche pas, vous devez peut-être ajouter le nom de chemin complet vers l'exécutable Python pour que la fenêtre d'installation puisse le trouver.
Ci dessous un exemple sous DOs pour Windows, en supposant que vous avez installé Python dans sa version 2.5 et dans le répertoire C:\Python25:
<pre>C:\Python25\python.exe setup.py</pre>
...adaptez les valeurs en fonction de la situation sur votre ordinateur)
Assurez-vous que la version de Python figurant dans la cinquième ligne de la sortie correspond à celle que vous désirez (sinon ajoutez le chemin complet vers la bonne version de interpréteur comme montré ci-dessous):
[[image:instSetupScriptStart.png|480px]]
Les questions posées par le script de configuration proposent des valeurs par défaut. Si vous souhaitez les conserver, il suffit d'appuyer sur <small>Entrée</small>.
<strong>Webserver domain:</strong> Il s'agit du nom de domaine du serveur Web que vous installez sur BioCASE, par exemple, '''http://www.moninstitution.org'''. Vous pouvez conserver la valeur par défaut ''localhost'' tant que vous configurez et testez l'installation localement, mais, pour une machine en production réellement accessible par Internet, vous aurez besoin de changer cela dans le nom de domaine correct (ou adresse IP) ultérieurement.
<strong>Base URL:</strong> Ce sera la deuxième partie de l'URL de votre installation (l’adresse du site dans le serveur, par exemple ''http://moninstitution.org/monbiocase/'' ). Si vous gardez la valeur par défaut, votre installation sera accessible plus tard à ''www.myinstitution.org/biocase''. Ce paramètre correspond à une option des paramètres Apache.
Après avoir répondu à ces deux questions, le script mettra à jour vos fichiers. À la fin de la sortie que vous pouvez trouver les lignes dont vous aurez besoin plus tard pour créer le lien entre BioCASe et votre serveur web. Il ne faut donc pas fermer la fenêtre!
[[image:instSetupScriptDone.png|480px]]
== Configurer votre serveur Web pour BioCASe ==
Les fichiers et programmes visibles publiquement depuis le Web sont placés dans le sous-répertoire '''www''' de votre installation BioCASe et doivent être configurés sur votre serveur pour un accès en lecture depuis l'extérieur. Vous devriez toujours configurer cela à l'aide d'un répertoire virtuel: c'est à dire que vous ne devez pas installer BioCASe à la racine de votre serveur Web (par exemple sur '/var/www' sur Ubuntu). Sinon vous pouvez compromettre la confidentialité de votre serveur en permettant au monde extérieur de voir vos fichiers de configuration , qui incluent des mots de passe. Par exemple, si vous avez installé BioCASe sur ''d:\biocase'', le répertoire que vous devez déclarer comme répertoire virtuel dans la configuration de votre serveur est ''d:\biocase\www'' et sera accessible par Internet via ''http://www.moninstitution.org/biocase''.
=== Apache ===
Si vous utilisez Apache, l'ajout du répertoire BioCASe dans votre environnement se fait simplement en copiant les directives affichées à la fin du script d'installation dans le fichier de configuration d'Apache (''httpd.conf'' dans le cas de la plupart des installations sur Windows). Ce fichier est le plus souvent situé dans le sous-répertoire ''conf'' de votre installation d'Apache (mais sous Ubuntu;, il est placé dans ''/etc/apache2/sites-available'' et lié sous forme de raccourci à ''/etc/apache2/sites-enabled''). Si vous installez BioCASe sur un serveur qui est déjà utilisé pour publier des sites webs, veuillez dans tous les cas en informer l'administrateur avant de modifier ce fichier, car il s'agît du fichier principal qui règle le comportement du serveur!
[[image:instHttpdConf.png|480px]]
Sauvez le fichier et redémarrez Apache pour mettre en vigueur les modifications (sous Windows ce redémarrage est souvent possible via l'interface graphique de votre Apache ou du package WAMP que vous avez installés, sous Linux via une commande Shell, comme sous Ubuntu<pre>sudo /etc/init.d/apache2 force-reload</pre> .
=== Internet Information Server (IIS) ===
Si vous utilisez IIS, vous devez créer d'abord un répertoire virtuel pour le chemin physique ''c:\biocase\www'' en utilisant l'outil ''IIS Server Manager''. Allouez tous les droits pour ce répertoire ('Read', 'Write', 'Script Execution', 'Directory listing'). Vous devriez ajouter également ''index.html'' à la liste des documents par défaut (<small>Virtual Directory > Properties > Documents > Default</small>).
Pour associer les scripts Python avec Python dans les versions 5 et 6 d'IIS, utilisez le bouton <small>Configure</small> sur l'onglet ''virtual directory'' et associez les extensions de fichier '''.cgi''' et '''.py''' avec le chemin de votre fichier exécutable Python (Voyez la copie d'écran ci-dessous).
[[File:instAddScriptMap.png|330px]]
Avec la version 7, vous pouvez ouvrir cette fenêtre en allant sur <small>Add Script Map</small>. Notez les "%s%s" après l'emplacement du Python, qui indiquent des emplacement réservés pour les paramètres.
Nous savons que configurer d'une manière générale Python pour IIS est souvent fastidieux. On trouve néanmoins de bonnes explications sur le web, par exemple:
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testez le lien ===
Dès que vous avez terminé, vous pouvez tester votre installation de BioCASe en ouvrant un navigateur et en allant sur ''http://localhost/biocase'' (replacez ''localhost'' par le domaine sur laquelle vous avez installé BioCASe si vous ne travaillez pas localement). Vous devriez alors voir la page d'accueil du BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installer les paquets additionnels Python ==
Avant de pouvoir configurer votre installation, vous devez installer des extensions, en fonction du type de logiciel de la base de données à publier ainsi que des fonctionnalités du BPS que vous souhaitez utiliser.
Sur la page d'accueil du BPS, cliquez sur <small>Utilities</small>, puis <small>library test</small> pour naviguer sur la page permettant de tester la librairie (paquet de programmes).
Cette page indique également si cette librairie est présente sur le système et, si dans ce cas, avec quelle version. Sur une installation neuve, vous devriez voir un écran similaire à celui-ci:
[[image:instLibrariesVanilla.png|450px]]
Les librairies spécifiques à BioCASe proprement dites sont déjà inclues dans le fichier d'archive que vous avez installé ou bien dans le répertoire Subversion d'où vous êtes parti. La librairie '4SuiteXML' est le nécessaire pour Local Query Tool (une interface de recherche pré-configurées qui vous permet d'accéder à vos donnes sur le Web). Si vous n'envisagez pas de l'utiliser, il n'est pas nécessaire de l'installer. Mais sinon cliquez sur le lien 'Download', trouvez le fichier d'installation qui convient à votre système d'exploitation, et installez 4SuiteXML à partir du fichier téléchargé.
Pour chaque type de base de données (SGBDR ou Système Gestionnaire be base de données Relationnelle dans le jargon), vous devrez toujours installer le package ou driver Python correspondant. Ce driver permet à un programme Python de se connecter à une base de données. Il doit être installé et configuré non pas au niveau de BioCASe, mais au niveau de l'environnement Python. Le BPS peut toutefois vous guider dans leur installation.
Si votre collection est par exemple stockée dans une base de données 'MySQL', cliquez sur le lien pour télécharger le module 'MySQL', trouvez le fichier d'installation qui correspond à votre version de Python et à votre système d'exploitation et faites l'installation. Une fois l'installation achevée, rechargez la page de test des libraires dans votre navigateur. La ligne de la liste qui correspond au driver devrait passer de l'orange pour 'non installé' à une indication verte mentionnant la version de la libraire. Répétez cette opérations si vous devez connecter d'autres types de base de données.
La librairie "Graphviz" figurant parmi les librairies extérieures optionnelles est utilisée par le BPS pour créer une représentation graphique du modèle de donénes de votre bases de données dans la partie du site web utilisée pour enregistrer les tables (plus d'information sur cela dans [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]], actuellement en anglais). Si votre modèle de données est très simple (c'est à dire, si la structure de votre BDD ne contient pas plus de 3 ou 4 tables), il n'est sans doute pas nécessaire d'installer Graphviz. Dans le cas contraire nous vous recommandons l'installation : cliquez simplement sur le lien 'Download link', trouvez le fichier d'installation adéquat, et faites comme mentionné plus haut pour les autres librairies.
== Changer le mot de passe par défaut ==
A la fin de la procédure de configuration, vous devriez changer le mot de passe.
L'outil de configuration ('configuration tool' en anglais) est une interface web qui vous permet de configurer presque tous les paramètres du BPS, dont le mot de passe.
Retournez à l'écran d'accueil du BPS (cliquez sur <small>Start</small> au sommet de la page, ou allez sur ''http://localhost/biocase'' si le serveur est sur votre machine), choisissez <small>Config Tool</small>, cliquez alors sur <small>System Administration</small>. L'interface vous demandera alors un mot de passe. Tapez le mot de passe par défaut ''ACDC'', cliquez finalement sur <small>Submit</small>.
Vous serez alors redirigés vers la page 'Configuration' dont la partie supérieure devrait ressembler à:
[[image:instConfigTool.png|500px]]
Dans les deux premières lignes, vous verrez les valeurs que vous avez entrer en exécutant le fichier d'installation. Nous supposons ici que vous avez laissé les valeurs par défaut ''localhost'' et ''biocase''. Vous pouvez encoder un nouveau mot de passe à la quatrièrme ligne de cet écran. Soyez précautionneux en le tapant. Si jamais vous l'oubliez, il est toutefois possible de le réinitialiser en modifiant directement les fichiers de configuration. Appuyez sur <small>Update config</small> pour sauvegarder le nouveau mot de passe dans les fichiers de configuration.
Si vous avez installé Graphviz, vous devrez préciser au BPS l'emplacement des fichiers binaires, car Graphviz n'est pas une librairie Python enregistrée directement au niveau de la configuration globale de Python. Pour ce faire, localisez l'emplacement de Graphviz sur votre disque dur et entrez le chemin de l'exécutable dans la zone de texte marquée par <small>Graphviz dot binary</small>. Sur des machines Linux elle devrait être similaire à l'emplacement par défaut (''/usr/local/bin/dot''). Sur un système Windows ce sera probablement quelque chose comme ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Pressez <small>update config</small> pour sauver ce chemin.
== Vérifiez votre Installation ==
Avant de passer à l'étape suivante (configuration d'une connexion à une base de données), vous devriez vous assurer que tout est installé correctement:
# Tapez ''http://localhost/biocase'' (ou bien le nom de domaine et l'adresse qui correspond à votre installation) vous mène à la page d'acceuil du logiciel BioCASe (comme décrit à la section [[#Configurer_votre_serveur_Web_pour_BioCASe|#Configurer votre serveur Web pour BioCASe]]).
# La page de test des librairies (<small>Utilities > library test</small>) mentionne que vous avez installé les paquets ou drivers pour votre BDD, 4SuiteXML (si vous souhaitez utiliser le Local Query Tool)et Graphviz Dot (optionnel, voir plis haut).
# <small>Status of writeable directories</small> ('Statut des répertoires modifiables') montre <small>writeable</small> ('inscriptible') en vert à la fois pour les 'Logs' (fichiers qui enregistrent les opérations sur la machine) et la configuration. Si ce n'est pas le cas, le chemin vers le fichier qui pose problème sera montré. Veuillez vous assurer que Python et/ou Apache peuvent écrire sur ce fichier. Par par exemple sur Ubuntu où Apache correspond à un compte utilisateur appelé 'www-data'
<pre>sudo chown -R www-data:www-data /var/www/biocase/log /var/www/biocase/config</pre><pre>sudo chmod -R 755 /var/www/biocase/log /var/www/biocase/config</pre>
Supposons, par exemple, que vous avez choisi d'utiliser BioCASe en combinaison avec deux bases de données, l'une en PostgreSQL et l'autre en Microsoft Access (pour laquelle il faut une connexion via la librairie ODBC) et que vous ne souhaitez pas utiliser le Query Tool, la page de vérification des librairies devrait alors ressembler à cela:
[[image:instLibrariesDone.png|450px]]
b9e02fdb4de393ad428c879a8e618b1cffa073c8
VersionHistory
0
23
543
499
2012-04-10T16:08:54Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes for XML archives:
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
===Version 3.0.1 [2012-04-05]===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6f193524145ef951f94d73493fc60bce12f57f37
557
543
2012-04-16T16:07:40Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes for XML archives:
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Archiving binary moved from archive working folder to archive lib folder
===Version 3.0.1 [2012-04-05]===
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for XML archives when using IIS (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a4b190d65c0010f156fe0e3857bc31104e274a54
558
557
2012-04-19T13:40:42Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.1 (Upcoming) ===
* Fixes for XML archives:
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Archiving binary moved from archive working folder to archive lib folder
** Compatibility issued with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
32dd60270bb018a31bcec8327f8f49bb23b7e9dd
559
558
2012-04-19T13:41:26Z
JoergHoletschek
3
/* Version 3.1 (Upcoming) */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.1 (Upcoming) ===
* Fixes for XML archives:
** Compatibility issued with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7878a9054859e98510e560c94d6cf910b56346ff
560
559
2012-04-19T15:52:58Z
JoergHoletschek
3
/* Version 3.1 (Upcoming) */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.1 (Upcoming) ===
* Fixes for XML archives:
** Compatibility issued with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
35c9b708580e32d8b3ff6e9fb39b62fb7b180570
561
560
2012-04-23T13:53:30Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issued with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1cff7c40947e7c5659010d282ea569320fec543f
562
561
2012-04-23T13:53:47Z
JoergHoletschek
3
/* Version 3.1 [2012-04-23] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6aa5032cb3139af437f8652cced6244b1ca977ea
563
562
2012-05-09T12:11:10Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fixes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f8758408155c0440b3b70c116177e43ef9f5bc81
564
563
2012-05-31T12:59:55Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fix for page 'DB Structure': DB graph generation works now also when IIS is used
* Fixes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9892500d5d01fc589813cb21b0543b413041d7fd
565
564
2012-05-31T13:00:51Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fix for page 'DB Structure':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Fixes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7a7e177e3a7b125ffa4f9ce3dd19440eecfeb89c
566
565
2012-05-31T13:01:57Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fix for page 'DB Structure':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Fixes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a724769c20a8ea882c8f058d4447b8829f72a518
567
566
2012-05-31T13:02:14Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fix for page 'DB Structure':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5fac2ad43caaab5c2441f4eb76ee84d7ff43a332
568
567
2012-05-31T13:02:35Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fixes for page 'DB Structure'
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Changes for XML archiving
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
d4e2a0196f641ee316aa925f00b4a55dd1a97371
569
568
2012-05-31T13:02:52Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fixes for page 'DB Structure':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
aa94473d0961c72bdaf9a3abc15159efe928a14a
DatasourceSetup (French)
0
98
553
2012-04-11T11:14:04Z
JoergHoletschek
3
Created page with "This tutorial explains in detail how to set up a datasource. == A BioCASe Data Source == Publishing a database with BioCASe means it will be made accessible through a BioCASe we..."
wikitext
text/x-wiki
This tutorial explains in detail how to set up a datasource.
== A BioCASe Data Source ==
Publishing a database with BioCASe means it will be made accessible through a BioCASe web service, which will be used later by the biodiversity network(s) you want to join to access to your data. For example, the GBIF Harvester will send a BioCASe Scan request to that web service to get a list of all scientific names kept in the database, and subsequently several BioCASe Search requests to load all records for these names.
For each database you want to publish, you need to set up a BioCASe data source (do not mix that up with ODBC data sources on Windows machines). The resulting BioCASe web service is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source. So if you made your installation available at http://www.foobar.org/biocase during the installation process and set up a data source named Herbar, the URL of the BioCASe web service would be http://www.foobar.org/biocase/pywrapper.cgi?dsa=Herbar (data source names can be case sensitive, depending on your server’s operating system).
== Creating a New Data Source ==
The start page of the BPS will always list the data sources currently configured, that means the web services offered by that BioCASe installation. On a fresh installation, it will be empty:
[[File:instBiocaseStartpage.png|500px]]
Creating a new data source can be done in the configuration tool. Choose <small>Config Tool</small> on the start page, then <small>System Administration</small>. Log in with the password you set during the installation process (if you didn’t change that yet, the default is ''ACDC''). In the configuration screen, the sections <small>Data Sources</small> and <small>Recycle Bin</small> can be used to create, remove und restore a data source:
[[File:dsaCreateDatasourceEmpty.png|500px|border]]
For now, we want to create a new, empty data source. Enter a name – without any spaces – in the text box and click <small>Create DSA</small> (remember that the datasource name is case sensitive on Linux machines). After a second, it will appear in the list of existing data sources with a clickable link. By doing this, you created the first BioCASe web service for your installation. Clicking <small>Remove</small> will uninstall this service again (putting it in the recycle bin, so you can restore it later).
Tip: If you select <small>abcdmetadata</small> in the template drop-down list, your data source will be created with an ABCD mapping for all the metadata elements stored in the metadata table mentioned in the [[Preparation]] guide. So if you did use the templates in ''sampledb/abcdmetadata'' to create the metadata table in your database, you can use this template to spare the hassle of mapping this table and start right away with your occurrence data.
== Setting up the database connection ==
Clicking on the data source you’ve just created will take you to the datasource configuration tool. Note that the <small>Schemas</small> section will be empty if you’ve created an empty data source or list two schemas (ABCD 1.2 and 2.06) if you created the datasource based on the <small>abcdmetadata</small> template:
[[File:dsaOverview.png|450px]]
The link in the <small>Database Connection</small> section will take you to the connection parameters dialog. Fill in the values for your database, press <small>Save</small> and the connection status should turn into a nice green <small>OK</small>.
'''DBMS:''' Select the entry appropriate for your collection. The BPS can directly connect to database servers (MySQL, Postgres, DB2, SQL Server, and Oracle) and to Desktop-DBMS like Access and FoxPro through ODBC. ODBC is only available on Windows, so if you plan to use it, BioCASe must be installed on a Windows Server.
'''Host:''' Enter the IP address of the database server. If you’re connecting through ODBC, you must leave this empty. Instead, use Windows’ ODBC Administrator to set up a System (!) datasource; the server or file name of the database will be stored in the ODBC configuration.
'''Database:''' Enter the name of the ODBC datasource if you’re using ODBC, or the name of the database if you’re directly connecting to a server.
'''User/Password:''' Database credentials to be used. As written in the [[Preparation]] guide, you should create a user with just read access for this.
'''Encoding:''' The encoding of your database. If you’re not sure, leave the default, you can change it if you run into problems later. If you know your database is using a different encoding than latin-1 (which is typically the default for western languages), maybe UTF-8, select the appropriate entry in the drop-down list.
[[File:dsaDBConnection.png|450px]]
Once you’ve entered the correct values, press <small>Save</small>. Click <small>Overview</small> in the link list at the top of the page to return to the datasource configuration page. If the connection status doesn’t turn into <small>OK</small> (and doesn’t after you’ve returned to the overview page), please read the [[Debugging]] guide about how to trace the problem.
== Setting up the Database Structure ==
Clicking on <small>Edit DB Structure</small> on the datasource overview page will show the DB structure setup. Make sure the connection status at the top of the page still is <small>OK</small>.
In a first step, you will add all tables/views that hold information you want to publish with BioCASe. You can ignore all database tables storing only data you don’t plan to map to ABCD. Same holds true if you use cache tables (as explained in the [[Preparation]] guide): Only the cache tables need to be set up on the database structure page. In a second step, you will specify the foreign key references between these tables.
=== Adding Tables/Views with their Primary Keys ===
To add a table or view, just select it in the drop-down list. The name of the table will be filled in the <small>Alias</small> text box (you will use this alias later in the mapping process), feel free to change it into something that describes the contents of that tables (for example ''specimen'' for the root specimen table). Press <small>Add</small> to insert the table into the list.
Before continuing to the next table, select the primary key in the list of attributes under <small>Primary Key Attribute(s)</small>. In case the data type is a string and not an integer, select <small>text</small> from the drop-down list. Press <small>Add</small> to add the primary key. If the primary key consists of several columns, you can add several primary key attributes.
'''<u>Hint</u>''' It has been noted that diacritic characters in primary key columns can cause problems, so you should try to use integer or ascii text columns as primary keys.
Redo these steps (adding the tables first, then the primary key/keys) for all tables you want to publish data from. Always remember to set the correct primary key column(s), even if they’re not defined as primary keys in the database.
'''<u>Important Note:</u>''' Tables without a primary key cannot be used by the Provider Software and will be removed upon saving!'''
=== Specifying Foreign Key References ===
Once you’ve added all tables, you can define the relations between these tables by defining foreign keys. In order to do this, go to the <small>Foreign Key(s)</small> column of the table that holds a foreign key reference to another table, select the alias of the referenced table and press <small>Add</small>. Select the attribute that stores the foreign key and change the data type if it is not integer, then press <small>Add</small>. You must specify as many attributes for the foreign keys as the primary key of the referenced table has, otherwise the Provider Software won’t be able to create a valid join between the tables. Also, they must be in the same order and have identical data types.
Redo this for all tables until you’ve specified all foreign key references.
If you’ve installed the Graphviz package, the Provider Software will create a graph visualizing the current database structure. Each table will be visible as a node with the primary key(s) listed. References between tables will be represented by arrows, the foreign key(s) listed in the referring table:
[[File:dsaDatabaseStructure_AlgenEngels.png|800px]]
=== Saving, Editing an Existing Setup ===
You can change aliases of tables you’ve already added to the list. To do so, go to the <small>Alias</small> text box of that table and type in a different name. Upon exiting the text box, all references to this alias will be updated in the table setup; also the graph will reflect the changes. But caution: Schema mappings use these aliases to bind schema elements to tables and columns, if you change an alias you’ve already used in a schema mapping, you will break this binding! So it is advisable to decide for meaningful alias names and keep them stable once you’ve started the mapping process.
Once you’ve added a table/view to the table list, you can’t change the underlying table, since this would invalidate all the primary and foreign key attributes. If you’ve added the wrong table, remove it by using the trash can symbol next to <small>Delete Alias</small> and add the correct table/view.
If you’ve finished the table setup and the graph displays the model of your database correctly, save the configuration by pressing <small>Save</small> at the bottom of the page. This is important; navigating away from the page without saving will cause your changes to be lost (even though you will be asked for confirmation)! It is advisable to save the table setup every now and then, for example once you’ve added all tables and primary keys.
If you edit an existing table setup and happen to realize you’ve messed it up, you can revert to the state when you’ve pressed <small>Save</small> for the last time by using the <small>Revert</small> button at the bottom. But be careful: All unsaved changes will be lost.
'''<u>Important Note:</u>''' The retrieval of tables/view/column names is currently only supported for the following DBMS: Microsoft SQL Server, MySQL, Oracle, Access, Postgres and FoxPro. If you use a different DBMS, you will see a simple text box instead of a drop-down-list, where you’ll have to type in the name of the table or column you want to add.
d058710ab56d5bb600216cedcaf7ca7431074ea5
ABCD2Mapping (French)
0
99
554
2012-04-11T11:14:56Z
JoergHoletschek
3
Created page with "This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID)..."
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
fded962cffd9c05d77e91db6fe66c81b84caf732
VersionHistory
0
23
570
569
2012-05-31T13:03:40Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2dc88e565b2d17c45b44cf29f399449cfb812399
571
570
2012-06-13T13:25:22Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a mapping doesn't break the Capabilities any more (PSF is updated to reflect this change)
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f3400e3a8c090fe693d1653ecaf0ef6396c3752c
572
571
2012-06-13T13:26:03Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* DarwinCore Archives can now be generated directly from the config tool
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a mapping doesn't break the Capabilities any more (PSF is updated to reflect this change)
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8313ab06a2331d3226e52ed47c3ce1fd36078f61
573
572
2012-06-13T13:32:42Z
JoergHoletschek
3
/* Version 3.2 [upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [upcoming] ===
* DarwinCore Archives can now be generated directly from the config tool
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
fe44ce26a08cf06bac84d743d8b599a104ea2753
Installation
0
6
574
474
2012-07-04T11:37:53Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download and install the new version as described above (lucky enough, you can skip the installation of Apache, Python and any DB packages) into a directory with the name you just memorised. When running the setup script, make sure to provide the the same base URL that was used by the old installation (for example ''/biocase''). Try out your new installation to make sure it is working.
Before pointing your web server to the new installation, manually copy the configuration files located in the config folder of your old installation to the config folder of your new installation: config.ini for the system settings and all folders in the datasources directory. You can then edit new installation and test the web services.
94f886528d90a8bac5a2f6d564717f938e5e387a
575
574
2012-07-04T11:49:14Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# Run the setup script. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# Change the default password of the new installation to the one you used in the old installation.
# Open the folder ''config'' of your old installation and open the file ''config.ini'' in a text editor. Use the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to the folder ''config/datasources'' of your new installation.
Done! Try out your new installation to make sure it is working.
af3a2f594623b846bd01b0a9fe8f9df6eb7bff95
576
575
2012-07-04T11:51:29Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# Change the default password of the new installation to the one you used in the old installation.
# Open the folder ''config'' of your old installation and open the file ''config.ini'' in a text editor. Use the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to the folder ''config/datasources'' of your new installation.
Done! Try out your new installation to make sure it is working.
ea036942677d1a04ae1455c311458ef11619bd03
577
576
2012-07-04T11:52:12Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# Change the default password of the new installation to the one you used in the old installation.
# Open the folder ''config'' of your old installation and open the file ''config.ini'' in a text editor. Use the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to the folder ''config/datasources'' of your new installation.
Done! Try out your new installation to make sure it is working.
69e1d3db7ad8ea56eb9aef3d17494f1153fde212
578
577
2012-07-04T11:52:44Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# Change the default password of the new installation to the one you used in the old installation.
# Open the folder ''config'' of your old installation and open the file ''config.ini'' in a text editor. Use the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to the folder ''config/datasources'' of your new installation.
Done! Try out your new installation to make sure it is working.
391a8248bf80879ad151dfd269da8c12d8cd79b2
579
578
2012-07-04T11:53:23Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the folder ''config'' of your old installation and open the file ''config.ini'' in a text editor. Use the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to the folder ''config/datasources'' of your new installation.
Done! Try out your new installation to make sure it is working.
a9ed0abf36ee5ad6060337fc2c12e450392fe62a
580
579
2012-07-04T11:54:24Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to the folder ''config/datasources'' of your new installation.
Done! Try out your new installation to make sure it is working.
0df870ff87206b31092af6079ed926e97cc14873
581
580
2012-07-04T11:54:50Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
Done! Try out your new installation to make sure it is working.
d6cedfe8ef01b6db8cd97883b8f99a663a47b2cc
582
581
2012-07-04T11:56:16Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
First: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it:
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
2aa0e8ecc84d24ccb23975c3f09fdb596dc7b04f
585
582
2012-07-04T12:03:33Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
Important: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values you don't see in the old file unchanged). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
df0eb547c383dcf99bcd7cded114a03b3ec61022
586
585
2012-07-04T12:05:00Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
Important: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
1772ffdfd7ff46228f1931832a0a7259faee9315
587
586
2012-07-05T09:16:07Z
JoergHoletschek
3
/* Installing Additional Python Packages */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for both the Logs and the Configuration. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
Important: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
bdde8b3d2e06b55e87840eae5dcde58d42548abf
589
587
2012-07-05T09:26:11Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all 4 drectories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
Important: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
8d35fc967aa81c2576e8d11f909d55c45b38b916
590
589
2012-07-05T09:26:32Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a Postgres and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
Important: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
c069d6b8fdf069366a89ffd1480baeb1a70e8317
591
590
2012-07-05T09:28:33Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
Important: If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. Provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
ab3c6111b564eba60da22c342665246507596e99
FAQ
0
52
583
476
2012-07-04T11:57:43Z
JoergHoletschek
3
/* I want to update my BioCASe installation. How do I do this? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating_an_existing_BioCASe_Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
fc7f15efd3da0c7f6a6bbcd6b8a9f7e299061815
584
583
2012-07-04T11:58:04Z
JoergHoletschek
3
/* I want to update my BioCASe installation. How do I do this? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
8a7254fdedd379b6a1be43298fcff2e503908eb4
File:InstLibrariesVanilla.png
6
14
588
30
2012-07-05T09:23:42Z
JoergHoletschek
3
uploaded a new version of "[[File:InstLibrariesVanilla.png]]"
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstLibrariesDone.png
6
16
592
34
2012-07-05T09:36:41Z
JoergHoletschek
3
uploaded a new version of "[[File:InstLibrariesDone.png]]"
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
BeginnersGuide
0
49
593
303
2012-07-05T09:38:50Z
JoergHoletschek
3
/* Requirements for Using the BPS */
wikitext
text/x-wiki
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, three requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
* For the web server in question, you must have the possibility to install Python (if it is not installed yet) and Python packages. Even though this can be done by the IT staff, you should make sure that there are no institutional policies colliding. If you want to create DarwinCore Archives, a Java Runtime Environment is required.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
5c2c0763327c68e7eccd879e65181258ec09897f
Archiving
0
80
594
439
2012-07-05T09:52:13Z
JoergHoletschek
3
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
73b512664de9db1b458c62df4bde1e5303ef7b36
596
594
2012-07-05T10:50:46Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
05634e7c5b5d9e6c22cceae9b86869281fd3f218
597
596
2012-07-05T10:52:09Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:xmlArchives.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
41bc72f7310ebc5280794ca7a49efe6eecf04bbe
600
597
2012-07-05T10:58:30Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
3d40d54abc41a194035be1dfce8e323c41e7ae7c
601
600
2012-07-05T10:59:48Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
fee12dcdddbca5099847603a8a43b0541d5a285e
602
601
2012-07-05T11:06:40Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
5721a7863d390c98871e313495c84954e97a639b
604
602
2012-07-05T11:07:57Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
e3fa540c53cb736cfa5963f700b505a1c2fb3005
605
604
2012-07-05T11:25:19Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
ff8c344dc5ce343ff7c460cda25530adca061e15
606
605
2012-07-05T11:27:27Z
JoergHoletschek
3
/* Customizing the Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
1e4f7905d2f41c7202a3f70c1d37e49bc16e67f7
607
606
2012-07-05T11:29:43Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
25955bbc7277393cf74e924947a677590361e29e
608
607
2012-07-05T11:51:08Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives.
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
ebb6af4f519bb8a6a0405ec6d5c362d361b84ce7
609
608
2012-07-05T11:56:09Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
f92e7e862553aa4aaab0ebeafe118a7ccd377632
610
609
2012-07-05T12:33:54Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
4b683b3508a08c2ab49b588bdbb01551c7e75f6f
612
610
2012-07-05T12:36:21Z
JoergHoletschek
3
/* Preparation */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
dc6b5d84cf63f7ac3988b3235d0f454b493d6185
613
612
2012-07-05T12:41:24Z
JoergHoletschek
3
/* Preparation */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
4cb1c3218236a156b1b99b5ef72195bbc15df578
616
613
2012-07-05T12:45:51Z
JoergHoletschek
3
/* Preparation */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
021800e997f1929e84b76b65e32f3ea4a14ac28d
617
616
2012-07-05T13:08:22Z
JoergHoletschek
3
/* Preparation */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
a897625c26c0521b31657b003181adadcba59de2
618
617
2012-07-05T13:09:53Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
8105218f1e96575f036f355417b507a872ff24f7
619
618
2012-07-05T13:10:34Z
JoergHoletschek
3
/* Usage */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
blubb
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
94662d8f7bb6739d928d31dcf7dfb2967a4bab4c
Archiving v3.0/3.1
0
100
595
2012-07-05T10:48:05Z
JoergHoletschek
3
Created page with "With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of r..."
wikitext
text/x-wiki
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
73b512664de9db1b458c62df4bde1e5303ef7b36
File:XmlArchives.png
6
101
598
2012-07-05T10:52:27Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
599
598
2012-07-05T10:56:12Z
JoergHoletschek
3
uploaded a new version of "[[File:XmlArchives.png]]"
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:XmlArchivesProgress.png
6
102
603
2012-07-05T11:06:49Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaJavaTest.png
6
103
611
2012-07-05T12:35:25Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaSystemSettings.png
6
104
614
2012-07-05T12:41:40Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
615
614
2012-07-05T12:44:44Z
JoergHoletschek
3
uploaded a new version of "[[File:DwcaSystemSettings.png]]"
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Archiving
0
80
620
619
2012-07-05T13:11:28Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
blubb
3101ecc0e232eec3e8a943da9a182eaab3f0abc3
621
620
2012-07-05T13:46:23Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|775px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled.
Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions. To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation.
The XML archiving step and its parameters are described in detail in the xxx section above. During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border]]
164af7490fb7e30b5f164d55d1309014274f660b
622
621
2012-07-05T13:46:43Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled.
Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions. To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation.
The XML archiving step and its parameters are described in detail in the xxx section above. During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border]]
00d62b9024821217cd5641fca7eac86a5d4529f5
624
622
2012-07-05T13:48:12Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled.
Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions. To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation.
The XML archiving step and its parameters are described in detail in the xxx section above. During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
c83306d03a347ddf01290e8fdb8ee5f229e6e5e8
625
624
2012-07-05T13:51:37Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the xxx section above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
2aad7e2fd0601adf0fde98778dd10bddbfc37754
626
625
2012-07-05T13:52:33Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
ae0c5327c45db080035f0593b025244a57d1979c
627
626
2012-07-05T14:00:23Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depeding on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab.
801c0cfb602dab3bf7f7c84d35375834fa7f2ba5
628
627
2012-07-05T14:14:30Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depeding on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset names and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png]]
===Trouble Shooting===
When trying to find the error, always read the log from top to bottom. Once you've found and solved the first problem, don't pay atteions, then restart the transformation using the ''DwC'' link of the respective XML archive.
fe1321f902f8d312dae9c6e957c8192b94449cdd
630
628
2012-07-05T14:17:16Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depeding on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
When trying to find the error, always read the log from top to bottom. Once you've found and solved the first problem, don't pay atteions, then restart the transformation using the ''DwC'' link of the respective XML archive.
6de828b5b048090fd4ea4a63ac7186e4640b5d79
631
630
2012-07-05T14:18:55Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
When trying to find the error, always read the log from top to bottom. Once you've found and solved the first problem, don't pay atteions, then restart the transformation using the ''DwC'' link of the respective XML archive.
69c28911476044f356ecb32a45225590a1021137
632
631
2012-07-05T14:31:49Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
334eb9ccf865e6dcc2aea8194fb071a4f084c3d5
633
632
2012-07-05T14:35:32Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
583ef6b072f75cc8f582e1ce8d9af5c5be88ae52
634
633
2012-07-05T14:53:33Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
14a659e3dcafd4ccac7e04b9ff2eaf5b765cfe1f
635
634
2012-07-05T14:59:04Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
f72a5c2998445305a819e0c4af96c1b619801cf5
636
635
2012-07-05T15:08:30Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
4e5ffbe280bddbcce3bf6b8a1ceb9af98edd5a54
637
636
2012-07-05T15:59:04Z
JoergHoletschek
3
/* Trouble Shooting */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
b9872dcc6c8ee7e7a528cc59ab46090cf31b0202
649
637
2012-10-02T15:41:55Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
2b4f2bbd09933da659085d5de70b94fcb3ea4ca4
650
649
2012-10-02T15:42:17Z
JoergHoletschek
3
/* Automating Archiving */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
Usage and Parameters
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus. These two parameters – dsa for indicating the data source name, pw for specifying the config tool password – are mandatory. If you call the script without dsa and pw specified, the script will exit with an error messages.
Below you’ll find the list of parameters:
Dsa Mandatory. Specifies the data source you want to administer.
Pw Mandatory. Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
Action This specifies the task to be done. Can be one of the following values:
Log This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
Cancel Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
XML Starts XML archiving. You can customize the process with these parameters:
Schema (optional). Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the Schemas section on the overview page of the data source configuration. Sample values would be ABCD_2.06 and HISPID_5 (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace http://www.tdwg.org/schemas/abcd/2.06); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace http://www.chah.org.au/schemas/hispid/5); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
filesize. (Optional). Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
Errors (Optional). Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
DWC: Starts XML archiving with subsequent DarwinCore Archive generations. You can use the same parameters as for XML archiving. Remember that Java needs to be installed for DarwinCore Archiving.
Return values of the script
The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
For the actions cancel, the script will return a message once the process has been cancelled successfully:
Output for log:
XML/DWC:
If an archiving process has been started successfully (actions xml and dwc), it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
Examples
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo
for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5
to start XML archiving for HIDPID 5 with filesize=500
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=cancel
to cancel any running XML or DwC archiving process.
67d55a893e79c12fd9f3e1217c37aba5a32aed07
651
650
2012-10-02T15:43:56Z
JoergHoletschek
3
/* Automating Archiving */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus. These two parameters – ''dsa'' for indicating the data source name, ''pw'' for specifying the config tool password – are mandatory. If you call the script without ''dsa'' and ''pw'' specified, the script will exit with an error messages.
Below you’ll find the list of parameters:
Dsa Mandatory. Specifies the data source you want to administer.
Pw Mandatory. Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
Action This specifies the task to be done. Can be one of the following values:
Log This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
Cancel Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
XML Starts XML archiving. You can customize the process with these parameters:
Schema (optional). Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the Schemas section on the overview page of the data source configuration. Sample values would be ABCD_2.06 and HISPID_5 (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace http://www.tdwg.org/schemas/abcd/2.06); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace http://www.chah.org.au/schemas/hispid/5); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
filesize. (Optional). Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
Errors (Optional). Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
DWC: Starts XML archiving with subsequent DarwinCore Archive generations. You can use the same parameters as for XML archiving. Remember that Java needs to be installed for DarwinCore Archiving.
Return values of the script
The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
For the actions cancel, the script will return a message once the process has been cancelled successfully:
Output for log:
XML/DWC:
If an archiving process has been started successfully (actions xml and dwc), it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
Examples
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo
for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5
to start XML archiving for HIDPID 5 with filesize=500
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=cancel
to cancel any running XML or DwC archiving process.
4f8c6cf37918a0f8d9c349e744ecd404b8e28a03
652
651
2012-10-02T16:24:36Z
JoergHoletschek
3
/* Automating Archiving */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
Return values of the script
The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
For the actions cancel, the script will return a message once the process has been cancelled successfully:
Output for log:
XML/DWC:
If an archiving process has been started successfully (actions xml and dwc), it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
Examples
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo
for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5
to start XML archiving for HIDPID 5 with filesize=500
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=cancel
to cancel any running XML or DwC archiving process.
805324d4f5c86e318a88271e736ce0d8ff1a17ef
653
652
2012-10-02T16:40:48Z
JoergHoletschek
3
/* Automating Archiving */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
==Return values of the script==
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
Examples
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo
for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5
to start XML archiving for HIDPID 5 with filesize=500
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=cancel
to cancel any running XML or DwC archiving process.
3ff5432dbe3ce43a09a6b65d6e254f8034de6825
654
653
2012-10-02T16:41:57Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo
for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5
to start XML archiving for HIDPID 5 with filesize=500
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml
to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=cancel
to cancel any running XML or DwC archiving process.
8755ae02bc817a0f718532491b3c302e3fac82a0
655
654
2012-10-02T16:43:40Z
JoergHoletschek
3
/* Examples */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
52b09db32128eed8658b4670144f0d484a92f178
656
655
2012-10-02T16:44:00Z
JoergHoletschek
3
/* Automating Archiving */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/pywrapper.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
53006791dfce06d58f5b1488ad7aaac43e74119f
657
656
2012-10-02T16:45:08Z
JoergHoletschek
3
/* Examples */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
f0de3b17fe7bc7a7957a7307d79e1f9048dc90e1
658
657
2012-10-02T16:47:58Z
JoergHoletschek
3
/* Examples */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate log requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
b39a5cf39ec63108f5d83c50a412c410dc575773
659
658
2012-10-02T16:50:37Z
JoergHoletschek
3
/* Return values of the script */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
be954b7251044c28161599ca7694857c2a0acc6b
660
659
2012-10-02T17:15:31Z
JoergHoletschek
3
/* Automating Archiving */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
|You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
0a5675f7456ca7327ebf84e327679dccbace94d0
662
660
2012-10-04T15:29:48Z
JoergHoletschek
3
/* Usage and Parameters */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.2.1 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
62618751756d4f4576862996215daa92b68797d7
663
662
2012-10-04T15:48:59Z
JoergHoletschek
3
/* Automating Archiving */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
;errors (Optional): Number of subsequent errors that are allowed to occur during the archiving before the process is cancelled with an error. Default is 1.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
b8191e78dbf3a6850d518241a94e92b8831a120c
File:DwcaArchiveProgress.png
6
105
623
2012-07-05T13:46:59Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:DwcaArchiveList.png
6
106
629
2012-07-05T14:15:17Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Archiving v3.0/3.1
0
100
638
595
2012-07-09T09:53:17Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in old versions 3.0 and 3.1. If you're using version 3.2 or later, please read the [[Archiving|up-to-date version]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives.
[[File:archArchivingPage.png|border]]
===Usage===
In the box “Existing Archives” you will see a list of already existing XML archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create a new Archive</small> allows you to create a new archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:archProcess.png|border]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the respective entry listed under <small>in progress</small>. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute. Always wait until the process has stopped before starting a new dump!
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Finished</small> list, if it’s still being processed, under <small>In progress</small>. Pressing the <small>Info</small> link next to an entry will display the log again. <small>Download</small> and <small>Remove</small> will do exactly what the links suggest.
Even though you can create several archives in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. <strong><u>Important note:</u></strong> Be aware that a BioCASe web service can restrict the number of records per request! If that limit is below the paging size set for archiving, the paging size will be adjusted to the limit of the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
XML Archives that use the ABCD 2.06 schema can be converted into DarwinCore Archives. Currently, this feature is only available as a standalone command-line tool. Once thoroughly tested, it will be intregrated into the BioCASe Provider Software and can be trigged from the configuration tool.
===Requirements===
Since this tool is currently a standalone application, it doesn't need to be run on the same machine as the BioCASe Provider Software. But of course it can - if you're running BioCASe on a publicly available server and plan to use DwCAs for production, the BioCASe server is definitely the right place.
* Java Runtime Environment 1.5 or later installed
* 2+G of RAM available
* 100M free disk space
* One or several ABCD2.06 Archives (created with BPS3+)
===Installation===
# If you don't have a Java Runtime Environment (version 1.5 or later) installed on your machine, get one [http://www.java.com/de/download/ here].
# Download the DwCA Creator from the [http://www.biocase.org/products/provider_software/index.shtml#DwCA_Creator BioCASe Website] and unzip the archive file to your machine. This will create a folder ''dwca'' for the tool.
# Test the installation by opening a terminal (''command prompt'' on Windows) and changing to the ''dwca'' folder. Start the tool by running the batch file ''dwca.bat'' on Windows or the shell script ''dwca.sh'' on Linux/MacOS. Since it doesn't do any processing, the test run should take only a few seconds and print some lines similar to following (you can ignore the warning ''No such file or directory'' in the last line):
[[File:dwcaTest.png]]
===Usage===
The converter can be started with the scripts ''dwca.bat'' (on Windows) and ''dwca.sh'' (on Linux/MacOS) and usually takes one argument - the ABCD archive to be converted. The tool accepts both a file stored in the local file system and an archive available for download at a given URL.
Let's assume you've created an ABCD2 dump for your collection. You've placed the archive file (named ''AlgaTerra_ABCD_2.06.zip'') in the same folder as the tool (''dwca''). To run the conversion on Linux, open a terminal window, change to the ''dwca'' folder and type in the following:
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command. Note that the base folder for the transformer is the ''kettle'' folder, so you need to specify ''..\'' to direct the transformer to its parent folder for finding the archive file (alternatively, you can put the archive file in the ''kettle'' subfolder and thus spare the ''..\''):
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip</pre>
This will unzip the ABCD documents stored in the archive file, create the data files, EML document(s) and the archive descriptor(s):
[[File:dwcaStartLocal.png]]
Depending on the size of your collection (number of records), the amount of information published (number of concepts mapped) and the speed of your server (available memory, number of CPUs/cores), this will take from several seconds to some minutes. For large collections (millions of records), it can take up to hours. After each chunk of 50,000 records processed, a line indicating the progress will be printed, so you will be able to see if the tool is still running. However, independent of the amount of data to be processed, the last lines of the output will look similar to the following:
[[File:dwcaEndLocal.png]]
When creating an ABCD Archive with the BioCASe Provider Software, it becomes automatically available for download on the BioCASe installation after the process has finished. The DwCA Creator can download the archive directly from this location. So if you're BioCASe installation is accessible from the machine you're running the prototype on, you can spare the trouble of moving the file manually and provide the URL instead of a local file name.
To get the download URL for an ABCD Archive you've created, find the archive in question in the list of existing archives in the configuration tool (see [[Archiving#XML_Archives|here]] for more on that). Right-click on the Download link and choose ''Copy link''. Then open a terminal window for the creator tool and provide the link intead of a file name:
<pre>./dwca.sh http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
On a Windows machine, use the following command:
<pre>dwca.bat http://ww3.bgbm.org/biocase/downloads/AlgaTerra/AlgaTerra_ABCD_2.06.zip</pre>
===Output===
The DwCA(s) created can be found in the folder ''output'' created in the base directory (''dwca''). Remember that there will be one DwCA per dataset. So depending upon how many datasets are stored in the source ABCD archive, there will be one or several files in the output folder.
On Linux and MacOS, the shell script ''dwca.sh'' will zip all files that make up one DarwinCore Archive into an archive file named after the dataset title. So you could send this files directly to a potential DwCA consumer:
[[File:dwcaOutputFolderLinux.png]]
On Windows, the batch file ''dwca.bat'' of the prototype doesn't do that zipping. So if you go to the output file after the conversion has finished, you will see several text files and XML documents, all named after the pattern ''<dataset> <filename>''. So for the example above, the output folder would look like this:
[[File:dwcaOutputFolderWindows.png]]
In order to create a DwCA that can be sent to a consumer, please do the follwing for each ''<dataset>'':
# Note down the dataset title,
# Remove the dataset title in the file names (''<dataset> <filename>'' becomes ''<filename>''),
# Create a zip named ''<dataset>.zip'' with all the files you just renamed.
This lack of functionality is due to the limited capabilities of Windows batch files. Once integrated into the Provider Software, you won't need to zip up files manually.
===Trouble Shooting===
If you run into problems when using this tool, please [[Special:Contact|contact us]] for help.
The default settings of the transormation should be working for small and medium-sized collections (up to 500,000 records). If the processing is cancelled with an OutOfMemoryError, you should try the follwing:
'''Increasing the maximum memory used by the transformer'''<br>
Per default, the transformer will use up to 1GB of RAM for the transformation process. In case of an OutOfMemoryError, you should increase this limit to 2GB. Don't be stingy with memory, since it will be only used during the tranformation process and be freed afterwards. Moreover, this is only the upper limit, so actual memory usage might well stay below this limit.
To allow the transformer to use more memory, go to the folder ''kettle'' of your installation. Open the file ''kitchen.sh'' (Linux/MacOS) or ''kitchen.bat'' (Windows) in a text editor. Use the ''Find'' feature of the editor to go to the spot in file that specifies the memory limit. Replace the value ''1024'' with the amount of memory you want to allow the transformation to use, so e.g. ''2048'' for 2GB:
[[File:dwcaSettingMemory.png]]
Save the file and restart the transformation.
'''Lowering the number of records stored in memory'''<br>
Per default, Kettle will store up to 100,000 records in memory before starting to use temporary files for sorting rows. You can set this threshold to a lower value to save some memory. However, be advised that this will result in heavy disk I/O on your machine, slowing down the transformation. Therefore you should first increase the memory limit before changing this setting.
If you decide to do this, just add the desired maximim number of records to be stored in memory as a second parameter when invoking the transformer. So on Linux, type in
<pre>./dwca.sh AlgaTerra_ABCD_2.06.zip 10000</pre>
in order to set the threshold to 10,000 records. On a Windows machine, type in following:
<pre>dwca.bat ..\AlgaTerra_ABCD_2.06.zip 10000</pre>
d3800d901146bb2cc2aadaed7df2eff9797af590
VersionHistory
0
23
639
573
2012-07-09T11:33:22Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives can now be generated directly from the config tool
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b61ad7531ac9c55a3f4a337ac3d025f2834a8dc3
640
639
2012-07-09T11:34:27Z
JoergHoletschek
3
/* Version 3.2 [2012-07-09] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a79a52ee88ee9b5a30368207a90d477ff64cab12
641
640
2012-07-24T13:42:50Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e9752cda08206f245875d665bc088a499096afd6
642
641
2012-08-21T11:55:02Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfixes
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
dc3b406ac6abefb6b606666bcf0ed54ce9b5e31f
643
642
2012-08-30T13:21:53Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfixes
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c44b94f9cedf4cbc32ffd698f99ff396e8c08798
645
643
2012-09-19T14:45:38Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
773fb442fd11ebb4a9f7b9431bd7535c056fa704
646
645
2012-09-20T16:06:25Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1621ab6de50bb627729f9392e52aee9fe05cd773
647
646
2012-10-02T14:28:19Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Experimental: Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
d0aafee2e0397de3f809b36a0724c59917d789c0
648
647
2012-10-02T14:28:49Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.2.1 [Upcoming] ===
* Experimental: Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9e0f6d874b05d0c4896dec633f37fa4b3e088797
664
648
2012-10-04T15:52:31Z
JoergHoletschek
3
/* Version 3.2.1 [Upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.3 [2012-10-04] ===
* Experimental: Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
282382a63cd8cdcb35bc4af9319a15e9f1feb3a5
665
664
2012-10-04T16:23:20Z
JoergHoletschek
3
/* Version 3.3 [2012-10-04] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8f5f09768e6f432ca99ed13d022cc0ec4b5fc2b7
666
665
2012-10-10T13:29:49Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.x.x [Upcoming] ===
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3c724685e6372d463d4487096c3b1f01ab08e153
667
666
2012-10-12T10:01:06Z
JoergHoletschek
3
/* Version 3.x.x [Upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.x.x [Upcoming] ===
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
89612cb3ed552dff007753c07da70776f504d5c1
668
667
2012-10-16T19:09:37Z
JoergHoletschek
3
/* Version 3.x.x [Upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.x.x [Upcoming] ===
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2a261855b8a0f976c9ff10749cee3639c899c58d
669
668
2012-10-17T18:08:50Z
JoergHoletschek
3
/* Version 3.x.x [Upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.x.x [Upcoming] ===
* Archiving: Archive name is now set automatically by BioCASe
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
55fde25a9693e82790ad5e2f8c64da16944712e8
FAQ
0
52
644
584
2012-09-17T12:31:51Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
8850b958111c7af86b9f26cfe87631d4cb65b8bc
670
644
2012-11-08T12:31:14Z
JoergHoletschek
3
/* Debugging */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
6839ea7a9e734afed1cd51bd9969409937b20064
VersionHistory
0
23
671
669
2012-11-08T16:19:08Z
JoergHoletschek
3
/* Version 3.x.x [Upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.x.x [Upcoming] ===
* Archiving: Archive name is now set automatically by BioCASe
* An existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG and ABCD-DNA
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5c734255b172b3fe3c2db2c8374420f392f19f28
672
671
2012-11-09T11:26:24Z
JoergHoletschek
3
/* Version 3.x.x [Upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
99466e42312ad42f011d4e74e7fa0f60fe2c7b17
673
672
2012-11-09T12:50:47Z
JoergHoletschek
3
/* Version 3.3.1 [2012-11-09] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
becc187767ab3998a6c6b8f29db6fd4b268c6204
674
673
2012-11-20T15:40:03Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
== Version 2 History ==
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
69d15d4dcf7154ce3283a2e94cf34a21df6bb61f
675
674
2012-11-20T15:41:42Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
dbf25b4d2aa53c7def0e83887e106bb07d55a397
676
675
2012-11-23T14:43:12Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
fa4957b8e9f3de53fa711d74036e9bb603b48f52
677
676
2012-11-26T09:07:08Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f7d71347d294674dc83655ce65b86b5f81d67487
678
677
2012-11-26T11:13:32Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6391a1883aae37c25ee1752c927634c583d2bb29
682
678
2012-12-04T16:30:34Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Corrections in layout of DB structure page in datasource configuration tool.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9026b30ae6228e72fded968d92aebe6ed0d4607d
683
682
2012-12-05T15:26:31Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6fc5dfbba1a19a1d7bec4d94aa0b57c06868e8c1
684
683
2012-12-05T15:32:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving reimplemented:
** More compact code.
** Now directly calls BioCASe libraries instead of using the web service. Results in significantly improved archiving performance.
** XML documents are not pretty printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
485355eb300133fe7a232b63095bdeba365d8cbd
685
684
2012-12-06T15:51:30Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7d238ff4a7708ded9257d68f297de28ce5304557
686
685
2012-12-09T11:12:03Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
* DwC archive transformation simplified.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
96b62927e6d66a21b9e97f48baff64dd42d3a798
688
686
2012-12-18T11:01:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
* DwC archive transformation simplified.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
24feeef0ed01fc2e1eae0d3fc8080b77fd7260bf
689
688
2012-12-18T11:02:02Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Jan 2013]===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
* DwC archive transformation simplified.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c23f5749ccfd2b175362586b32b8d0d26cf78a6d
690
689
2012-12-20T12:49:39Z
JoergHoletschek
3
/* Version 3.4 [to be released in Jan 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Jan 2013]===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
* DwC archive transformation simplified.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up an empty, i.e. malformed response document).
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
bdae2713b79f8185f8bbdf6718677ba620b2ecdd
691
690
2012-12-21T13:02:42Z
JoergHoletschek
3
/* Version 3.4 [to be released in Jan 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Jan 2013]===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up an empty, i.e. malformed response document).
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3715daedb0b289ddfb3cfee06268136f928ac27d
692
691
2012-12-21T13:04:17Z
JoergHoletschek
3
/* Version 3.4 [to be released in Jan 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Jan 2013]===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up an empty, i.e. malformed response document).
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9ac6c48cdbc8fb4cf85a69a4dd1b59c6359f858e
693
692
2012-12-21T13:32:32Z
JoergHoletschek
3
/* Version 3.4 [to be released in Jan 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Jan 2013]===
* XML archiving reimplemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9f8e0b2d9dfb99009bdbbbaf8d99860799a63d26
694
693
2012-12-21T13:48:52Z
JoergHoletschek
3
/* Version 3.4 [to be released in Jan 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Jan 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8d0941eb9669bb7b8a5cf5b5f68e9039019e1ae9
695
694
2012-12-21T17:53:51Z
JoergHoletschek
3
/* Version 3.4 [to be released in Jan 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Jan 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
54286faf77d33acd4c2a2a7a5e76204c06198c0d
696
695
2013-01-22T17:59:26Z
JoergHoletschek
3
/* Version 3.4 [to be released in Jan 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Feb 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8d5a7bfad0554adc5af99cacef52606914c20ad1
697
696
2013-01-24T09:24:57Z
JoergHoletschek
3
/* Version 3.4 [to be released in Feb 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Feb 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a53904e6c5f6f2c12ccf4a68526135321edb5030
698
697
2013-01-24T09:27:31Z
JoergHoletschek
3
/* Version 3.4 [to be released in Feb 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Feb 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
28f20bf03fec531d2fa8d715fa3663b8255588a7
701
698
2013-02-07T10:29:43Z
JoergHoletschek
3
/* Version 3.4 [to be released in Feb 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Feb 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3e37397f15c6e866a7e48d381c2b00c85939de36
702
701
2013-02-07T10:34:55Z
JoergHoletschek
3
/* Version 3.4 [to be released in Feb 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Feb 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
888f0253d706c79ce696e79aebfdd204f1d840d5
703
702
2013-02-08T18:51:23Z
JoergHoletschek
3
/* Version 3.4 [to be released in Feb 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Feb 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a0cf8b7a5f6e9a4e5aa84f234071a5c2343fb555
704
703
2013-02-18T18:05:02Z
JoergHoletschek
3
/* Version 3.4 [to be released in Feb 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [to be released in Feb 2013]===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
bcaa8f87a4ef6e8a285ac68171de2e4fe026262b
705
704
2013-02-20T14:56:19Z
JoergHoletschek
3
/* Version 3.4 [to be released in Feb 2013] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3268ce15d5272bf9f6e96056c9176e87c97f8257
706
705
2013-02-28T15:07:09Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fix in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1e421344369ce6cbed0481ee010a8f823fd022b0
707
706
2013-03-07T09:51:37Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2543795dfd6f1662cd3bcb7a543f2d13ce538000
708
707
2013-03-08T14:48:29Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
61473faf0b3ecf200d5be97cb741bb1a8155b681
709
708
2013-03-11T10:28:30Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Settings page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c7142b57be06a9447805f9304117036f9a7eba39
710
709
2013-03-18T12:18:32Z
JoergHoletschek
3
/* Version 3.3.2 [2012-11-26] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8cd31c2d0eba011b2a98bd92325df0c126e92a27
711
710
2013-03-19T18:05:46Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1f4d47f09d171f674fce4a225e35a2e0e15b4556
Archiving
0
80
679
663
2012-12-03T16:28:04Z
JoergHoletschek
3
/* Usage and Parameters */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'', ''filesize'' and ''errors''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
75d707fbf7859e6dd5a925c04ed4459398a0174e
680
679
2012-12-03T16:29:20Z
JoergHoletschek
3
/* Usage and Parameters */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
3c9da73920e72a3dc20e8c684d75de2356a0fdbb
681
680
2012-12-03T16:29:39Z
JoergHoletschek
3
/* Usage and Parameters */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.2 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
5606ebcce5bbd9e10eed2ad97d19524bdba685da
712
681
2013-03-27T14:08:23Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in versions 3.2 and 3.3. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for version 3.4 and later, go [[Archiving]].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
fa2904825b9fffe8af4de27b9095052641ec83ed
713
712
2013-03-27T14:18:46Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in versions 3.2 and 3.3. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for version 3.4 and later, go [http://wiki.bgbm.org/bps/index.php/Archiving here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
d7d24c03196e18b111c76fa89d1514c389338faa
714
713
2013-03-27T14:21:56Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in an archive, this file can be downloaded from your web server or sent to the harvester via email and ingested much faster.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, a separate XML Archive can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. Similar to a BioCASe web service, DwCAs can be used to publish data to the Global Biodiversity Information Facility (GBIF). A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as “ABCD/HISPID dumps”) can also be stored in one or several DarwinCore Archives. This is due to the fact that one BioCASe web service can publish several datasets, and a DarwinCore Archive can only store a single dataset. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD. Consequently, a DarwinCore Archive will store less information than an ABCD dump for a given web service.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
6b12a21556a4185cc1f1aa6f0512b976aef43d38
715
714
2013-03-27T14:51:16Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchives.png|border|750px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
28b00c2874b798c259cea4ed44cb496e880a8315
716
715
2013-03-27T15:01:18Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create an XML Archive for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
782b1297fcbdf32a853cc41039341186a6d1a2dd
718
716
2013-03-27T15:03:46Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
===Creating an Archive===
In the box “Existing Archives” you will see a list of already existing XML and DwC archives. If you go to the archiving page for the first time, it will be empty. Once you’ve created archives, they will show up here and can be downloaded and removed by using the links next to the entries.
<small>Create XML Archive</small> allows you to create a new XML archive for each schema mapped. Simply select the schema and press <small>Create Archive</small> (leave the defaults unless you have a good reason to change them). During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgress.png|border|825px]]
You can always cancel the archiving process by pressing <small>Cancel</small> next to the name of the archive being currently processed. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>XML</small> list, or, if it’s still being processed, as <small>processing</small>. The links <small>Log</small>, <small>Dwnld</small> and <small>Rem</small> next to an existing archive will display the log, download or remove the file from the server. If the process failed for some reason (or you decided to cancel it), a new section <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create one archive at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
ffbe8bf15a22fe13da65f8353f467c88074bbb82
719
718
2013-03-27T15:18:20Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
===Creating or Updating an Archive===
This sections allows you to create a new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. The paging size specifies how many records will be bundled into one XML document inside the archive; in most cases, the default 1000 will be OK. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|825px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box<small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
ecd06ebed050daf5a2d13197e9221bc0f52f4a3e
720
719
2013-03-27T15:23:20Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
===Creating or Updating an Archive===
This sections allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. The paging size specifies how many records will be bundled into one XML document inside the archive; in most cases, the default 1000 will be OK. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|825px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box<small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
6e2ec1d102f1a2792c0daa24b7090ae250f6a0fd
FAQ
0
52
687
670
2012-12-13T13:17:23Z
JoergHoletschek
3
/* I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database. */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, this post might be helpful: http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
1281dc0a181d66b3e244131e296b0da52951592f
699
687
2013-01-24T09:33:06Z
JoergHoletschek
3
/* I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database. */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
75103b6ba7d7deea07619e7e4115adf4d60f8b36
CommonABCD2Concepts
0
22
700
387
2013-01-31T11:12:27Z
JoergHoletschek
3
/* Highly Recommended */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
48224faf9a463da1acabffe04606bdf6655de4b6
File:XmlArchivesNew.png
6
107
717
2013-03-27T15:01:39Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:XmlArchivesProgressNew.png
6
108
721
2013-03-27T15:24:49Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Archiving
0
80
722
720
2013-03-27T15:25:25Z
JoergHoletschek
3
/* Creating or Updating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
===Creating or Updating an Archive===
This sections allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. The paging size specifies how many records will be bundled into one XML document inside the archive; in most cases, the default 1000 will be OK. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box<small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
===Customizing the Archive===
There are four parameters for customizing the archiving process:
<strong>Destination schema:</strong> Data schema that will be used for storing the published records in the archive.
<strong>Paging size:</strong> Number of records stored in each document. The default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
<strong>Max number of consecutive errors:</strong> The default for this is “1”. That means that if an error occurs during data retrieval or XML/archive creation, the archiving process will be aborted. If you set this to a value larger than 1, the process will be cancelled after this number of errors. This allows you to complete the archiving in spite of errors, view the log file afterwards and have a look at the problematic records. Once you’ve corrected all errors breaking the dump, you should set the threshold to 1 and redo the archiving to create an archive storing all records.
<strong>Archive file name:</strong> Name of the archive file to be created. The default will be constructed by concatenating web service name and data schema.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
db8d87c251f6100edd442ce9b7ae6e9bbc5d20cf
723
722
2013-03-27T15:29:17Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
===Creating or Updating an Archive===
This sections allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box<small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
b50dc13d603a433f5aaea95664d5e44c0303f158
724
723
2013-03-27T15:31:12Z
JoergHoletschek
3
/* Creating or Updating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box<small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
799e52f4961594594c5179a59c8079c5548ce4b4
725
724
2013-03-27T15:37:41Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. Since one BioCASe web service can publish several datasets and a DarwinCore Archive can only store a single dataset, DwC-archiving a web service might result in several DarwinCore Archives.
DarwinCore archives are not created directly, but from the respective ABCD archive. So DwC-archiving a web service will usually first create an ACBD archive, which will then be converted into the respective DwC archive (alternatively, you can choose to convert an already existing ABCD archive into DwC).
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
b90174525db91e71b94288b00a29aad1dcd8484a
726
725
2013-03-27T15:42:58Z
JoergHoletschek
3
/* DarwinCore Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive manually, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the file name listed under ''Existing XML Archives''. The XML archiving step and its parameters are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link next to ''processing'' in the ''Existing archives'' box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from that ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
172e2983608a867e0e176951b27c342c89310a4e
727
726
2013-03-27T15:50:09Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgress.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file. Remember that several files will be generated if the web service publishes several datasets:
[[File:dwcaArchiveList.png|555px]]
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
279865130ed0cd2f0bc64ef060737ebe6fe15b84
728
727
2013-03-27T15:51:25Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: The DwC Archive creation completed successfully!'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
80cdd211eaf2508e2ebefcfb13846c6d4d447ceb
729
728
2013-03-27T15:53:54Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
[[File:xmlArchivesNew.png|border|700px]]
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
98a0826797037220669f264d3ddea55abfe44e19
731
729
2013-03-27T16:25:08Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all lines of that group; for web services published dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archive may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to mandatory reasons. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore archive. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
542032bf3e2e5e486e0f34ae3bb7920a7282642c
732
731
2013-03-27T16:26:09Z
JoergHoletschek
3
/* Managing Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archive may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to mandatory reasons. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore archive. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
d04340190eda9fec49dd6492f3e2e2d1da5d50cb
733
732
2013-03-27T16:27:01Z
JoergHoletschek
3
/* Managing Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to mandatory reasons. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore archive. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
72c92adf32345ba4c69c2d74fe62c22d02da90be
734
733
2013-03-27T16:28:06Z
JoergHoletschek
3
/* Managing Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to mandatory reasons. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
Once you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
3847c77057b63cfe18a4f8f688ec6e524ba293d7
735
734
2013-03-27T16:29:10Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to mandatory reasons. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
e1552323f07d4ea81d4e298ece4b13016af496c6
736
735
2013-03-27T16:32:45Z
JoergHoletschek
3
/* Usage and Parameters */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later. If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to mandatory reasons. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
0144d341793f7a94581bf14929da3d1733b7b46b
737
736
2013-03-27T16:48:12Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to mandatory reasons. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
ea639e26020c06522792b933631101e3cf3e9206
738
737
2013-03-27T16:50:09Z
JoergHoletschek
3
/* Managing Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousands or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additonal group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the libary test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferrably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
b0b35c5b1870286ec44e0fabe78615a39d59343d
739
738
2013-03-27T17:10:43Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|800px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
c39582472ae439736f665b5e13a08f2d21bf9fa3
740
739
2013-03-27T17:26:32Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border|850px]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
35ed5150705c339ee0960e3291e040fcd235cb73
741
740
2013-03-27T17:26:57Z
JoergHoletschek
3
/* Creating an Archive */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border|750px]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
803ce403a6c1cf6bdabc216e58c6b3b62f6d483c
742
741
2013-03-27T17:27:27Z
JoergHoletschek
3
/* XML Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|700px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
ebd232adbd9f59f1f7c76ef71a8a2fc8130658dd
743
742
2013-03-27T17:28:24Z
JoergHoletschek
3
/* Managing Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
257d7da322689280394ccb547210081f7428d9aa
File:DwcaArchiveProgressNew.png
6
109
730
2013-03-27T15:55:49Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Common.css
8
2
744
275
2013-03-28T12:24:28Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: relative;
/*top: -70px;*/
top: 5px;
}
#firstHeading {
margin-top: 20px;
}
/* Codeboxen */
div.mw-geshi {
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
overflow:auto;
font-size: 10pt;
}
0641c49c4e389643cb28f933d7b56f74faec65a2
745
744
2013-03-28T12:25:31Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: absolute;
top: -70px;
}
#firstHeading {
margin-top: 20px;
}
/* Codeboxen */
div.mw-geshi {
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
overflow:auto;
font-size: 10pt;
}
f45290d85faaf189859204b00aeb1cbc83c7a56d
746
745
2013-03-28T12:27:00Z
JoergHoletschek
3
css
text/css
/* CSS placed here will be applied to all skins */
/* Hide title of Main_Page */
/* body.page-Main_Page h1.firstHeading { display:none; } */
/* Hide every title except special pages */
/*body.ns-subject h1.firstHeading { display:none; }*/
/* Added manually: Hide toolbox */
#p-tb{ display:none;}
/* Added manually: Move BreadcrumbsTrail below Heading */
#BreadCrumbsTrail {
margin-bottom: -30px;
position: absolute;
top: 5px;
/*position: relative; top: -70px;*/
}
#firstHeading {
margin-top: 20px;
}
/* Codeboxen */
div.mw-geshi {
padding: 1em;
margin: 1em 0;
border: 1px dashed #2f6fab;
overflow:auto;
font-size: 10pt;
}
6993d9724160f0ec7d03fdff44dddb899b733013
VersionHistory
0
23
747
711
2013-04-04T15:22:17Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
0e77cafb6fcaa02819dd1b4ddd2c464db1df7b71
748
747
2013-05-29T12:23:22Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1150153c6bd7c2dae3c637fcb569598cd3c1f1a0
749
748
2013-06-12T09:05:54Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Namespace prefixes added for DNA and EFG extensions.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9f27d85aa587fc94a34ec86746cd2627be73813b
750
749
2013-07-03T15:03:10Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving can now be limited to certain datasets with one data source.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
02afec4933348e99c830d99082cc05af1bb1beb1
751
750
2013-07-04T12:41:41Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving can now be limited to certain datasets with one data source.
* Optional attribute expiration date for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ac2918c73a531b6c4777ea6c5d3a89db6fd80986
752
751
2013-07-08T12:26:11Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute expiration date for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e47088ceb432eeee6fc2a83a9bf47ea51b2bcb83
753
752
2013-07-08T13:48:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute expiration date for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6e6c1e0ffdb5f10d52fc9c16d9971f65e6430403
754
753
2013-07-10T13:01:15Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ac2b7cd84b478333334c019f85545e06e95390b6
755
754
2013-07-15T12:35:16Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8f0d89548923e61c91562adc7988c0ad46d117df
756
755
2013-09-25T13:56:06Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Concept trees can now be expanded/collapsed in mapping editor (thanks to Falko Glöckler).
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e6917b6f0c786cfe42c3612c997e66a9d1a7c94d
757
756
2013-10-02T16:39:37Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for DarwinCore archives: term recordedBy is now filled correctly.
* Concept trees can now be expanded/collapsed in mapping editor (thanks to Falko Glöckler).
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4d04a1aca411c9542a491546b6dfe41ea68df4a8
758
757
2013-10-02T16:40:00Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for DarwinCore archives: term ''recordedBy'' is now filled correctly.
* Concept trees can now be expanded/collapsed in mapping editor (thanks to Falko Glöckler).
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9a3481dd4a3b38a3838754581b0f1ed6225d5d3a
759
758
2013-10-03T18:57:30Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for DarwinCore archives: term ''recordedBy'' is now filled correctly.
* Mapping editor:
** Bugfix for concept tree (attributes misplaced when ''show all concepts'' was checked)
** Concept tree overhauled (collapsable subtrees thanks to Falko Glöckler)
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8e942c638e3ffae0816925c4cf09a704caa6c043
760
759
2013-10-04T09:42:54Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for DarwinCore archives: term ''recordedBy'' is now filled correctly.
* Mapping editor concept tree
** overhauled (collapsable subtrees thanks to Falko Glöckler)
** bugfix for attributes (used to be misplaced when ''show all concepts'' was checked)
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6ada0fe94b15c10ba0380bf4528d2f918fae457c
761
760
2013-10-04T10:11:52Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Mapping editor concept tree
** overhauled (collapsable subtrees thanks to Falko Glöckler)
** fix for attributes (used to be misplaced when ''show all concepts'' was checked)
* Fixes
** term ''recordedBy'' is now filled correctly in DarwinCore archives
** mapping editor now works even if there is no connection to the database
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
db654b853a8798082e9fbae8698f880665550b4e
762
761
2013-10-22T10:09:11Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2e662fc23c8579980e0f4be7ad9cc4a1ec902b95
763
762
2013-10-22T10:24:48Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4b6bdbcfd06212a1935c1caed57eba974edb344a
764
763
2013-10-23T11:31:59Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e2f059f99724fcd2646fc51976ff84b4e0440d51
765
764
2013-10-24T10:16:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a1e16abae3420341962110fb5eafd23cb24101b0
766
765
2013-11-28T14:55:20Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e70a7ea945bc27689ba771ce5b9cb7aab8ecb1e6
767
766
2013-11-29T15:48:41Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
caa184167cb7fe0436da375db5c1d07aabab465c
769
767
2013-12-05T10:56:46Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7f49ee9648b5c51e89587dc50f744e2f5dd69267
770
769
2014-01-16T10:38:55Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''coordinatePrecision'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks'').
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
31bf3939a28c73703f1f2eadb5257656f8bf4126
FAQ
0
52
768
699
2013-11-29T15:59:01Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
e354ef74febf202c6e9d645cf9bf6b6d366150a7
VersionHistory
0
23
771
770
2014-01-16T11:36:50Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''coordinatePrecision'', ''georeferenceProtocol'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks'').
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
bffdc956953acb1e95bfc67f4b009c57144dd0a8
772
771
2014-01-16T11:52:54Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''coordinatePrecision'', ''georeferenceProtocol'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks'').
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
041cb92db6e27f806da847624f72f4c62905c9bb
773
772
2014-01-16T16:38:01Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''coordinatePrecision'', ''georeferenceProtocol'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as fieldNumber).
** ABCD element CollectorsFieldNumber is now correctly mapped to recordNumber; fieldNumber is filled with ABCD elemen Gathering/Code.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
331602a54c7ddc2b7f3e43ef4e799a5ebae044e5
774
773
2014-01-16T16:38:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''coordinatePrecision'', ''georeferenceProtocol'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to recordNumber; fieldNumber is filled with ABCD elemen Gathering/Code.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3e70c05c739b881a7e37cac4a8d958a971e519d4
775
774
2014-01-16T17:02:35Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to recordNumber; fieldNumber is filled with ABCD elemen Gathering/Code.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b9c9f9ceb0e5d02adb496147d388c799cb29a9c1
776
775
2014-01-16T17:39:04Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to recordNumber; fieldNumber is filled with ABCD elemen Gathering/Code.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4ca602a31401d269cf9b93e9179bdd782488114a
777
776
2014-01-16T17:39:49Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3e93c0733908cc7a1a4e4aaf41fa5cb5c44b2132
778
777
2014-01-17T15:41:11Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c52a22e8db58792d6f6201a0f1243e2e2402da28
779
778
2014-01-23T14:09:10Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
32126234b17da1f2533a53dd949b7f58d3416431
780
779
2014-01-28T09:37:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
64603e36364a2b945491de1c80ed910fae94df3f
781
780
2014-01-28T13:17:51Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
* QueryForm now also shows Dataset Inventory.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
706f8bcd4c981a03401c9aafdbb1940d9a07dcdd
783
781
2014-02-04T17:01:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
** When Postgres is used, another port than the default 5432 can be used.
* QueryForm now also shows Dataset Inventory.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e3aa5675df58df211cb15749ebd9adb3524f4273
784
783
2014-02-12T11:00:07Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
cfb47742ea5dc93357e20218060c1a9d3ff5195b
786
784
2014-03-25T16:22:20Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
53673a4e2a111ed2b6b1704d85f05cf6c85eab35
787
786
2014-03-25T19:58:36Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
97dbd6b180c335182a327af099d718876ad2af53
788
787
2014-04-01T13:23:44Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
56a61dbb753d0fb3ba3aa60291285827bcf0f84e
789
788
2014-04-01T13:58:46Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird module revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
44cde7eba27b3e5088b6600a2264aa7128b4d4f8
790
789
2014-04-01T14:03:47Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5d26ec4e6cf1bba4142383f7ca058db817dae7aa
791
790
2014-04-10T14:06:52Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
87383222c838429adb17992f3ad226004201e957
792
791
2014-04-10T15:06:47Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6351516bc71c9445dafc265914aa43a149139227
793
792
2014-05-14T14:49:31Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fix: Admin password removed from configuration dump in system administration.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
db4253a9e09a5a5b502276b7d1d917a6a4948de0
794
793
2014-05-22T12:58:24Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** Admin password removed from configuration dump in system administration.
** DwC archiving: For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
d4015aac28c6aaf3b188caf52ac5bbc5f2953ca7
795
794
2014-05-22T13:07:01Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** Admin password removed from configuration dump in system administration.
** DwC archiving: For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
* Namespace prefix for ABCD 2.1 added.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8bd8d053714f7bfb2299785fa30f4d0b35fcc74e
796
795
2014-06-05T11:37:40Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** Admin password removed from configuration dump in system administration.
** DwC archiving: For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e943d9b149f91362b7c230652f2cee7d1ae84ba2
798
796
2014-07-02T14:26:24Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** Admin password removed from configuration dump in system administration.
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7e8214abe2a9586ea88a6193a2b3ecb4c8db5c8b
799
798
2014-07-07T10:37:13Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b525c3ff26d7b7ee171dd4a450da0f742eab6bfb
800
799
2014-07-17T13:23:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6fda7d36ae8d8d79dd6caad87c9507261317d6d4
801
800
2014-07-18T10:55:24Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b4702791d3ff455982b25cb72af616803ddde946
802
801
2014-07-18T10:55:33Z
JoergHoletschek
3
/* Upcoming [2014-07-18] */
wikitext
text/x-wiki
== Current Version 3 ==
=== 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7625f12972f93384eadf2099a6698d121df72e19
803
802
2014-07-18T10:55:47Z
JoergHoletschek
3
/* 3.5.2 [2014-07-18] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6d9a9e3fe6ff49f85e48c16966b04caea5127260
804
803
2014-07-18T11:12:18Z
JoergHoletschek
3
/* Version 3.5.2 [2014-07-18] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
dfa9eade98426f51fb1021e5382f082a4024f44a
807
804
2014-12-16T16:52:07Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if mapped to an empty, i.e. NULL field).
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
be293a6cb99b1334abd8b2d4206b54ecf32eeb3a
808
807
2014-12-16T16:53:04Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribite was mapped to an empty, i.e. NULL field).
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ec6d19687cc6985391b71fa0e7fe806cf6921e8d
809
808
2014-12-16T16:59:20Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
24f2e3cc3560a47fce64f28f86f6463dee621937
810
809
2014-12-22T14:27:22Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions lather than 2.5, for which 4Suite XML is not available.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5ce6741c2c0cc05ecdf20a5c7989cf32de60fbd4
811
810
2014-12-22T15:44:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions lather than 2.5, for which 4Suite XML is not available.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql: In certain cases, SQL stamenets used to return no results without a reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c1d127ada742af558a34d70be3294abf70b99167
812
811
2014-12-22T15:45:38Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions lather than 2.5, for which 4Suite XML is not available.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql: In certain cases, SQL stamenets used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
cbde3d37f37c31e45ba7517141287381e4fa9fe8
813
812
2014-12-22T15:54:23Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions lather than 2.5, for which 4Suite XML is not available.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL stamenets used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8f6e81ce4717909d0471e3c63b030ef878d38dbb
814
813
2015-01-06T14:32:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions lather than 2.5, for which 4Suite XML is not available.
* Slight behaviour changes in mapping editor: Pop-up window can now be closed with Return or Escape.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
60cafd0015dd77263e334df58ea8fa71924000dd
815
814
2015-01-06T17:04:18Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions lather than 2.5, for which 4Suite XML is not available.
* Slight changes in mapping editor (Pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ceb9d456e2d21b8f424100b508a76ebb3796507b
816
815
2015-01-06T17:04:37Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* Slight changes in mapping editor (Pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
da02245d4f4ebfc3f7ccdc60905aa22887b9f1e7
817
816
2015-01-06T17:04:59Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* Slight changes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1bdfa005e6a2ad3ead6357945b8b2d92b28ff10e
818
817
2015-01-14T12:34:11Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC) added.
* Slight changes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9668144bf542332c329a2e4c2e1cce89d4c7c14c
819
818
2015-01-14T12:34:29Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
59f1de8f6dec12881ab326e2bdeaa3b069a96f63
820
819
2015-01-15T13:13:36Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrade now don't lose the static table definition any more.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ff28c86911b94249a15ca0973d131c331ef3f199
FAQ
0
52
782
768
2014-01-30T15:43:35Z
JoergHoletschek
3
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
d5ff7278462c3a560d5aaab2c7c42eff029a703d
785
782
2014-02-12T11:07:17Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
6dbd1e218ab4c50911065bd998e89552c2c368c5
797
785
2014-07-01T13:20:00Z
JoergHoletschek
3
/* Debugging */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/informatics/infrastructure/publishing/) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
bd1eea279a5c3739fdab9c2fa45f54ce1fb4158b
Installation
0
6
805
591
2014-09-18T09:21:07Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
dd1ede66c4edc88e8430b9ee726037509d0f2fb2
806
805
2014-09-18T09:22:24Z
JoergHoletschek
3
/* Updating an existing BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that. Recommended Apache versions are 2.0 and 2.2.
The BPS requires Python 2.5+ to run. Even though it also works with versions 2.6 and 2.7, the recommended Python version is 2.5. For later versions, the package required for connecting the BPS to the database used may be not available yet. You can go to the [http://ww3.bgbm.org/biocase/utilities/testlibs.cgi libs test page of the BGBM installation], find the package required for your DBMS and check out the availability for newer Python versions on the respective website (for example, the 4SuiteXML library required for running the Local Query Tool is currently only available for Python 2.5). By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
4fbd71a8b457a8ef796d54739371418b60385cd9
VersionHistory
0
23
821
820
2015-01-15T13:15:05Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2c6a09bc0dddf82e7426b75926bfa66c80040159
822
821
2015-01-15T17:04:37Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
37ab2f9f9c7e6f177f70db5475eaad7abc644eb5
829
822
2015-01-23T15:51:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
42dc4eec94c1873193d0a43f2b44c9a26d543e26
830
829
2015-01-23T15:51:45Z
JoergHoletschek
3
/* 3.5.3 [2015-01-23] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a8a050eb8ed8f525f035e31fb1c2e03ee8ef6c71
831
830
2015-04-01T15:02:32Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c2a010cb68c23f1f6244cb940ec18a4af6798d56
832
831
2015-04-03T13:20:54Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Smaller changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Fixes
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f9b7af556ab500dcf1d7722c1f983ac09fef7657
833
832
2015-06-19T08:27:54Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Fixes
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4d5f87d71dbb00bd019cc2b2807472631da4bf26
843
833
2015-08-10T15:26:48Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Fixes
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c49cec760e26378231f543111a45b75b8488d2ad
844
843
2015-08-14T12:30:44Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* Fixes
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9800119c6040b2f3dd6b3c00dd0221667a7c0c19
845
844
2015-08-14T14:52:55Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* Fixes
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3a958bf235f416bd5fa96d1b987f892d144113a9
846
845
2015-08-18T15:01:20Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* Fixes
** Namespace added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ef972d4fd019b9c4190323001251276b8131cb70
848
846
2015-08-31T10:14:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* Support for LIDO schema added (including smaller changes to wrapper core).
* Fixes
** Namespace added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7c08121d05ffa6b5aaa38d2761f76e054156da31
849
848
2015-09-06T15:53:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* Support for LIDO schema added (including smaller changes to wrapper core).
* The ''schemaLocation'' is now set for some schemas.
* Fixes
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8967793b3931901ca9d0c8edfabb86f57afc66d9
850
849
2015-09-07T16:22:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* Support for LIDO schema added (including smaller changes to wrapper core).
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* Fixes
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
795cf7b4553a8066f24dbcf773d4fce585a7ed22
851
850
2015-09-15T10:01:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* Support for LIDO schema added (including smaller changes to wrapper core).
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1ffd3350acc67e1918b8007d4d7ac1f768b9131c
852
851
2015-09-17T12:34:25Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Support for [http://http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
234342efa77b8fba9452c69a64dd978d22f542ae
853
852
2015-09-17T12:34:48Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6118f35bec4e032390ae58449ab25daf16b30024
854
853
2015-10-09T10:04:12Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8add686abcc4387f417ee0c9c1ffbe9ca048d22a
855
854
2015-10-09T10:09:58Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f21cf28b6d0a2447a3a260c751c7e549494a215e
856
855
2015-10-09T10:34:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
60c15afd911450085b4f115f4a26cb2e457ce69a
857
856
2015-10-14T15:49:49Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* Support for ABCD 2.1 added to QueryTool and archiving.
* XML Archiving will be more patient now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** XML archiving uses less memory now (and will be probably faster with larger datasets)
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e935ee2455c84e7a841971eded802e7a8ad14902
858
857
2015-10-19T13:13:09Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
20c0aa3e092771a06603dc246ad95ee6c2a02c31
859
858
2015-10-27T14:12:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
527f4155c9a6e4fdb6d8a5b43b6571e2f3f56473
860
859
2015-11-09T11:27:23Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
65fa1ed2b6383d158d6cb5698ec39d2833c206cd
861
860
2015-11-09T11:27:58Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore archive transformation: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7e0a9ec816d43d635200882e98c65b6bc96474ea
862
861
2015-11-09T14:39:33Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
fd28e7269fa174e0e8d40b3eda92856b80efe505
869
862
2015-11-18T16:40:05Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
39e3934ee58457956912da659f9b2e709fb1ff43
870
869
2015-11-19T13:29:28Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2d955f5f1af35068f362ff284562102ae97c33f1
BeginnersGuide de
0
110
823
2015-01-19T14:47:51Z
JoergHoletschek
3
Created page with "Was ist die BioCASe Provider Software? Die BioCASe Provider Software ist eine Middleware, also eine Software, die den Datenaustausch zwischen zwei voneinander entfernten Syste..."
wikitext
text/x-wiki
Was ist die BioCASe Provider Software?
Die BioCASe Provider Software ist eine Middleware, also eine Software, die den Datenaustausch zwischen zwei voneinander entfernten Systemen erlaubt. Sie ermöglicht, Daten aus einem relationalen Datenbanksystem (z.B. einem Sammlungsverwaltungssystem) in ein Datennetzwerk einzuspeisen. Nach der Installation und Konfiguration von BioCASe sind die Daten als BioCASe Webservice im Internet verfügbar und können mittels BioCASe-Protokollanfragen abgerufen werden. Die Provider Software ist nicht abhängig von einem bestimmten Datenstandard und lässt sich mit einem beliebigen Datenschema verwenden.
Die Provider Software muss auf einem Webserver des Datenlieferanten installiert werden. Kern ist der sogenannte PyWrapper, eine in Python entwickelte XML/CGI-Datenschnittstelle, die einen standardisierten Zugriff auf eine Vielzahl von Datenbankmanagementsystemen mit beliebigen Datenmodellen ermöglicht. Um diese Schnittstelle herum existieren verschiedene Tools, die die Einrichtung, Konfiguration und den Test der BioCASe-Installation und –Webservices vereinfachen.
Obwohl BioCASe prinzipiell mit jedem XML-Datenschema verwendet werden kann, ist das Haupteinsatzfeld die Anbindung von biologischen Beleg- und Beobachtungsdaten an Primärdatennetzwerke zur Artenvielfalt wie dem BioCASe-Netzwerk und der GBIF.
Voraussetzungen für den Einsatz der BioCASe Provider Software
Vor dem Einsatz der Provider Software sollte ein potentieller Datenlieferant drei Voraussetzungen prüfen:
Die zu veröffentlichenden Sammlungs- oder Beobachtungsdaten müssen in einem SQL-fähigen relationalen Datenbankmanagementsystem vorhanden sein oder in einem Format, zu dem ein Zugang über ODBC (Open Database Connectivity) möglich ist, wie z.B. Microsoft Excel. Nicht-relationale Datenbankmanagementsysteme werden nicht unterstützt. Derzeit kann sich die Provider Software mit den folgenden Datenbanksystemen verbinden: Microsoft Access, Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Foxpro, Sybase, 4D, DB2, Firebird, Microsoft Excel.
Zur Installation der Provider Software muss ein dauerhaft mit dem Internet verbundener Webserver vorhanden sein (Apache oder Microsoft IIS). Dies kann ein Server des Datenproviders oder eines kommerziellen Hosting-Dienstes sein. Eine Veröffentlichung über eine Dial-up-Verbindung ist nicht möglich.
Auf diesem Webserver muss die Installation von Python (insofern es noch nicht installiert ist, was z.B. bei vielen gängigen Linux-Installationen der Fall ist) sowie zusätzlicher Python-Pakete möglich sein. Dies ist für Mitarbeiter der IT üblicherweise keine Hürde, solange dem keine institutionellen Richtlinien entgegenstehen. Für die optionale Erzeugung von DarwinCore-Archiven ist zusätzlich eine Java Runtime Environment nötig.
Vorgehensweise
Sollte die Wahl auf die BioCASe Provider Software fallen (bei der Entscheidungsfindung hilft das BioCASe-Team gerne weiter), umfasst eine Anbindung von Daten üblicherweise die folgenden Schritte:
• Entscheiden, welche Daten an das Netzwerk angebunden werden sollen. Dazu gehören die Klärung der Frage, wem die Daten eigentlich gehören, sowie die Festlegung der Nutzungsbedingungen/-beschränkungen und einer Lizenz. Darüber hinaus sollte geprüft werden, welche Daten *nicht* veröffentlicht werden sollen, weil sie gefährdete Arten betreffen. In diesem Fall können bestimmte Datensätze komplett von der Veröffentlichung ausgeschlossen werden oder bestimmte Teile davon – z.B. die Koordinaten des Fundortes – gezielt verunschärft werden.
• Vorbereitung der Datenbank auf die Veröffentlichung. Dabei müssen die Entscheidung getroffen werden, ob die Live-Datenbank oder ein regelmäßig erzeugter Snapshot angebunden werden soll, und die Tabelle für die Metadaten angelegt und befüllt werden. In einigen Fällen sind weitere Datentransformationen nötig, siehe Tutorial.
• Installation der Provider Software, siehe Tutorial.
• Anlegen einer BioCASe Datenquelle, Verbinden mit der Datenbank und Definition der Datenbankstruktur, siehe .
• Anlegen eines ABCD2 Mappings.
• Testen und Debuggen des BioCASe Webservices, siehe Tutorial.
• Nach Abschluss der Konfiguration kann der neue BioCASe-Webservice im Wunsch-Datennetzwerk angemeldet werden, z.B. bei GBIF. Wir empfehlen jedoch, davor kurz das BioCASe-Team zu kontaktieren, das einen Blick auf den neuen Webservice werfen und auf Richtigkeit prüfen kann. Falsche Mappings lassen sich umso leichter korrigieren, je früher sie entdeckt werden.
Support
Bei Problemen während Installation und Konfiguration empfehlen wir
• In den FAQ nachzuschlagen, ob das Problem und eine Lösung dort beschrieben sind,
• Befreundete Nutzer der BioCASe Provider Software um Rat zu fragen, oder
• Kontakt mit dem BioCASe-Team aufzunehmen. Bitte dabei genau das verwendete System (verwendetes BioCASe-Version sowie Betriebs/Datenbankmanagementsystem), Fehlermeldungen und die Schritte, die dazu führten, beschreiben. Screenshots sind dabei immer von Vorteil.
c0fbc9db0f3ea11e09a651cdc7f8c78a4e8cbde0
824
823
2015-01-19T14:59:11Z
JoergHoletschek
3
wikitext
text/x-wiki
==Was ist die BioCASe Provider Software?==
Die BioCASe Provider Software ist eine Middleware, also eine Software, die den Datenaustausch zwischen zwei voneinander entfernten Systemen erlaubt. Sie ermöglicht, Daten aus einem relationalen Datenbanksystem (z.B. einem Sammlungsverwaltungssystem) in ein Datennetzwerk einzuspeisen. Nach der Installation und Konfiguration von BioCASe sind die Daten als BioCASe Webservice im Internet verfügbar und können mittels BioCASe-Protokollanfragen abgerufen werden. Die Provider Software ist nicht abhängig von einem bestimmten Datenstandard und lässt sich mit einem beliebigen Datenschema verwenden.
Die Provider Software muss auf einem Webserver des Datenlieferanten installiert werden. Kern ist der sogenannte PyWrapper, eine in Python entwickelte XML/CGI-Datenschnittstelle, die einen standardisierten Zugriff auf eine Vielzahl von Datenbankmanagementsystemen mit beliebigen Datenmodellen ermöglicht. Um diese Schnittstelle herum existieren verschiedene Tools, die die Einrichtung, Konfiguration und den Test der BioCASe-Installation und –Webservices vereinfachen.
Obwohl BioCASe prinzipiell mit jedem XML-Datenschema verwendet werden kann, ist das Haupteinsatzfeld die Anbindung von biologischen Beleg- und Beobachtungsdaten an Primärdatennetzwerke zur Artenvielfalt wie dem [http://www.biocase.org BioCASe Netzwerk] und der [http://www.gbif.org Global Biodiversity Information Facility].
==Voraussetzungen für den Einsatz der BioCASe Provider Software==
Vor dem Einsatz der Provider Software sollte ein potentieller Datenlieferant drei Voraussetzungen prüfen:
* Die zu veröffentlichenden Sammlungs- oder Beobachtungsdaten müssen in einem SQL-fähigen relationalen Datenbankmanagementsystem vorhanden sein oder in einem Format, zu dem ein Zugang über ODBC (Open Database Connectivity) möglich ist, wie z.B. Microsoft Excel. Nicht-relationale Datenbankmanagementsysteme werden nicht unterstützt. Derzeit kann sich die Provider Software mit den folgenden Datenbanksystemen verbinden: Microsoft Access, Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Foxpro, Sybase, 4D, DB2, Firebird, Microsoft Excel.
* Zur Installation der Provider Software muss ein dauerhaft mit dem Internet verbundener Webserver vorhanden sein (Apache oder Microsoft IIS). Dies kann ein Server des Datenproviders oder eines kommerziellen Hosting-Dienstes sein. Eine Veröffentlichung über eine Dial-up-Verbindung ist nicht möglich.
* Auf diesem Webserver muss die Installation von Python (insofern es noch nicht installiert ist, was z.B. bei vielen gängigen Linux-Installationen der Fall ist) sowie zusätzlicher Python-Pakete möglich sein. Dies ist für Mitarbeiter der IT üblicherweise keine Hürde, solange dem keine institutionellen Richtlinien entgegenstehen. Für die optionale Erzeugung von DarwinCore-Archiven ist zusätzlich eine Java Runtime Environment nötig.
==Vorgehensweise==
Sollte die Wahl auf die BioCASe Provider Software fallen (bei der Entscheidungsfindung hilft das [[Special:Contact|BioCASe Team]] gerne weiter), umfasst eine Anbindung von Daten üblicherweise die folgenden Schritte:
# Entscheiden, welche Daten an das Netzwerk angebunden werden sollen. Dazu gehören die Klärung der Frage, wem die Daten eigentlich gehören, sowie die Festlegung der Nutzungsbedingungen/-beschränkungen und einer Lizenz. Darüber hinaus sollte geprüft werden, welche Daten '''nicht''' veröffentlicht werden sollen, weil sie gefährdete Arten betreffen. In diesem Fall können bestimmte Datensätze komplett von der Veröffentlichung ausgeschlossen werden oder bestimmte Teile davon – z.B. die Koordinaten des Fundortes – gezielt verunschärft werden.
# Vorbereitung der Datenbank auf die Veröffentlichung. Dabei müssen die Entscheidung getroffen werden, ob die Live-Datenbank oder ein regelmäßig erzeugter Snapshot angebunden werden soll, und die Tabelle für die Metadaten angelegt und befüllt werden. In einigen Fällen sind weitere Datentransformationen nötig, siehe [[Preparation|Tutorial]].
# Installation der Provider Software, siehe [[Installation|Tutorial]].
# Anlegen einer BioCASe Datenquelle, Verbinden mit der Datenbank und Definition der Datenbankstruktur, siehe [[DatasourceSetup|Tutorial]].
# Anlegen eines [[ABCD2Mapping|ABCD2 Mappings]].
# Testen und Debuggen des BioCASe Webservices, siehe [[Debugging|Tutorial]].
# Nach Abschluss der Konfiguration kann der neue BioCASe-Webservice im Wunsch-Datennetzwerk angemeldet werden, z.B. bei [http://www.gbif.org GBIF]. Wir empfehlen jedoch, davor kurz das [[Special:Contact|BioCASe-Team zu kontaktieren]], das einen Blick auf den neuen Webservice werfen und auf Richtigkeit prüfen kann. Falsche Mappings lassen sich umso leichter korrigieren, je früher sie entdeckt werden.
==Support==
Bei Problemen während Installation und Konfiguration empfehlen wir
* In den [[FAQ]]nachzuschlagen, ob das Problem und eine Lösung dort beschrieben sind,
* Befreundete Nutzer der BioCASe Provider Software um Rat zu fragen, oder
* Kontakt mit dem [[Special:Contact|BioCASe Team]] aufzunehmen. Bitte dabei genau das verwendete System (verwendetes BioCASe-Version sowie Betriebs/Datenbankmanagementsystem), Fehlermeldungen und die Schritte, die dazu führten, beschreiben. Screenshots sind dabei immer von Vorteil.
ed040049ab668f28c9ab5cbd5aa69cfadb2d8100
825
824
2015-01-19T15:01:47Z
JoergHoletschek
3
wikitext
text/x-wiki
==Was ist die BioCASe Provider Software?==
Die BioCASe Provider Software ist eine Middleware, also eine Software, die den Datenaustausch zwischen zwei voneinander entfernten Systemen erlaubt. Sie ermöglicht, Daten aus einem relationalen Datenbanksystem (z.B. einem Sammlungsverwaltungssystem) in ein Datennetzwerk einzuspeisen. Nach der Installation und Konfiguration von BioCASe sind die Daten als BioCASe Webservice im Internet verfügbar und können mittels BioCASe-Protokollanfragen abgerufen werden. Die Provider Software ist nicht abhängig von einem bestimmten Datenstandard und lässt sich mit einem beliebigen Datenschema verwenden.
Die Provider Software muss auf einem Webserver des Datenlieferanten installiert werden. Kern ist der sogenannte PyWrapper, eine in Python entwickelte XML/CGI-Datenschnittstelle, die einen standardisierten Zugriff auf eine Vielzahl von Datenbankmanagementsystemen mit beliebigen Datenmodellen ermöglicht. Um diese Schnittstelle herum existieren verschiedene Tools, die die Einrichtung, Konfiguration und den Test der BioCASe-Installation und –Webservices vereinfachen.
Obwohl BioCASe prinzipiell mit jedem XML-Datenschema verwendet werden kann, ist das Haupteinsatzfeld die Anbindung von biologischen Beleg- und Beobachtungsdaten an Primärdatennetzwerke zur Artenvielfalt wie dem [http://www.biocase.org BioCASe Netzwerk] und der [http://www.gbif.org Global Biodiversity Information Facility].
==Voraussetzungen für den Einsatz der BioCASe Provider Software==
Vor dem Einsatz der Provider Software sollte ein potentieller Datenlieferant drei Voraussetzungen prüfen:
* Die zu veröffentlichenden Sammlungs- oder Beobachtungsdaten müssen in einem SQL-fähigen relationalen Datenbankmanagementsystem vorhanden sein oder in einem Format, zu dem ein Zugang über ODBC (Open Database Connectivity) möglich ist, wie z.B. Microsoft Excel. Nicht-relationale Datenbankmanagementsysteme werden nicht unterstützt. Derzeit kann sich die Provider Software mit den folgenden Datenbanksystemen verbinden: Microsoft Access, Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Foxpro, Sybase, 4D, DB2, Firebird, Microsoft Excel.
* Zur Installation der Provider Software muss ein dauerhaft mit dem Internet verbundener Webserver vorhanden sein (Apache oder Microsoft IIS). Dies kann ein Server des Datenproviders oder eines kommerziellen Hosting-Dienstes sein. Eine Veröffentlichung über eine Dial-up-Verbindung ist nicht möglich.
* Auf diesem Webserver muss die Installation von Python (insofern es noch nicht installiert ist, was z.B. bei vielen gängigen Linux-Installationen der Fall ist) sowie zusätzlicher Python-Pakete möglich sein. Dies ist für Mitarbeiter der IT üblicherweise keine Hürde, solange dem keine institutionellen Richtlinien entgegenstehen. Für die optionale Erzeugung von DarwinCore-Archiven ist zusätzlich eine Java Runtime Environment nötig.
==Vorgehensweise==
Sollte die Wahl auf die BioCASe Provider Software fallen (bei der Entscheidungsfindung hilft das [[Special:Contact|BioCASe Team]] gerne weiter), umfasst eine Anbindung von Daten üblicherweise die folgenden Schritte:
# Entscheiden, welche Daten an das Netzwerk angebunden werden sollen. Dazu gehören die Klärung der Frage, wem die Daten eigentlich gehören, sowie die Festlegung der Nutzungsbedingungen/-beschränkungen und einer Lizenz. Darüber hinaus sollte geprüft werden, welche Daten '''nicht''' veröffentlicht werden sollen, weil sie gefährdete Arten betreffen. In diesem Fall können bestimmte Datensätze komplett von der Veröffentlichung ausgeschlossen werden oder bestimmte Teile davon – z.B. die Koordinaten des Fundortes – gezielt verunschärft werden.
# Vorbereitung der Datenbank auf die Veröffentlichung. Dabei müssen die Entscheidung getroffen werden, ob die Live-Datenbank oder ein regelmäßig erzeugter Snapshot angebunden werden soll, und die Tabelle für die Metadaten angelegt und befüllt werden. In einigen Fällen sind weitere Datentransformationen nötig, siehe [[Preparation|Tutorial]].
# Installation der Provider Software, siehe [[Installation|Tutorial]].
# Anlegen einer BioCASe Datenquelle, Verbinden mit der Datenbank und Definition der Datenbankstruktur, siehe [[DatasourceSetup|Tutorial]].
# Anlegen eines [[ABCD2Mapping|ABCD2 Mappings]].
# Testen und Debuggen des BioCASe Webservices, siehe [[Debugging|Tutorial]].
# Nach Abschluss der Konfiguration kann der neue BioCASe-Webservice im Wunsch-Datennetzwerk angemeldet werden, z.B. bei [http://www.gbif.org GBIF]. Wir empfehlen jedoch, davor kurz das [[Special:Contact|BioCASe-Team zu kontaktieren]], das einen Blick auf den neuen Webservice werfen und auf Richtigkeit prüfen kann. Falsche Mappings lassen sich umso leichter korrigieren, je früher sie entdeckt werden.
==Support==
Bei Problemen während Installation und Konfiguration empfehlen wir
* In den [[FAQ]] nachzuschlagen, ob das Problem und eine Lösung dort beschrieben sind,
* Befreundete Nutzer der BioCASe Provider Software um Rat zu fragen, oder
* Kontakt mit dem [[Special:Contact|BioCASe Team]] aufzunehmen. Bitte dabei genau das verwendete System (verwendetes BioCASe-Version sowie Betriebs/Datenbankmanagementsystem), Fehlermeldungen und die Schritte, die dazu führten, beschreiben. Screenshots sind dabei immer von Vorteil.
b0ceeb2f568cf08bbdbd7417dd5c6f0d26418edd
826
825
2015-01-19T15:02:21Z
JoergHoletschek
3
wikitext
text/x-wiki
==Was ist die BioCASe Provider Software?==
Die BioCASe Provider Software ist eine Middleware, also eine Software, die den Datenaustausch zwischen zwei voneinander entfernten Systemen erlaubt. Sie ermöglicht, Daten aus einem relationalen Datenbanksystem (z.B. einem Sammlungsverwaltungssystem) in ein Datennetzwerk einzuspeisen. Nach der Installation und Konfiguration von BioCASe sind die Daten als BioCASe Webservice im Internet verfügbar und können mittels BioCASe-Protokollanfragen abgerufen werden. Die Provider Software ist nicht abhängig von einem bestimmten Datenstandard und lässt sich mit einem beliebigen Datenschema verwenden.
Die Provider Software muss auf einem Webserver des Datenlieferanten installiert werden. Kern ist der sogenannte PyWrapper, eine in Python entwickelte XML/CGI-Datenschnittstelle, die einen standardisierten Zugriff auf eine Vielzahl von Datenbankmanagementsystemen mit beliebigen Datenmodellen ermöglicht. Um diese Schnittstelle herum existieren verschiedene Tools, die die Einrichtung, Konfiguration und den Test der BioCASe-Installation und –Webservices vereinfachen.
Obwohl BioCASe prinzipiell mit jedem XML-Datenschema verwendet werden kann, ist das Haupteinsatzfeld die Anbindung von biologischen Beleg- und Beobachtungsdaten an Primärdatennetzwerke zur Artenvielfalt wie dem [http://www.biocase.org BioCASe Netzwerk] und der [http://www.gbif.org Global Biodiversity Information Facility].
==Voraussetzungen für den Einsatz der BioCASe Provider Software==
Vor dem Einsatz der Provider Software sollte ein potentieller Datenlieferant drei Voraussetzungen prüfen:
* Die zu veröffentlichenden Sammlungs- oder Beobachtungsdaten müssen in einem SQL-fähigen relationalen Datenbankmanagementsystem vorhanden sein oder in einem Format, zu dem ein Zugang über ODBC (Open Database Connectivity) möglich ist, wie z.B. Microsoft Excel. Nicht-relationale Datenbankmanagementsysteme werden nicht unterstützt. Derzeit kann sich die Provider Software mit den folgenden Datenbanksystemen verbinden: Microsoft Access, Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Foxpro, Sybase, 4D, DB2, Firebird, Microsoft Excel.
* Zur Installation der Provider Software muss ein dauerhaft mit dem Internet verbundener Webserver vorhanden sein (Apache oder Microsoft IIS). Dies kann ein Server des Datenproviders oder eines kommerziellen Hosting-Dienstes sein. Eine Veröffentlichung über eine Dial-up-Verbindung ist nicht möglich.
* Auf diesem Webserver muss die Installation von Python (insofern es noch nicht installiert ist, was z.B. bei vielen gängigen Linux-Installationen der Fall ist) sowie zusätzlicher Python-Pakete möglich sein. Dies ist für Mitarbeiter der IT üblicherweise keine Hürde, solange dem keine institutionellen Richtlinien entgegenstehen. Für die optionale Erzeugung von DarwinCore-Archiven ist zusätzlich eine Java Runtime Environment nötig.
==Vorgehensweise==
Sollte die Wahl auf die BioCASe Provider Software fallen (bei der Entscheidungsfindung hilft das [[Special:Contact|BioCASe Team]] gerne weiter), umfasst eine Anbindung von Daten üblicherweise die folgenden Schritte:
# Entscheiden, welche Daten an das Netzwerk angebunden werden sollen. Dazu gehören die Klärung der Frage, wem die Daten eigentlich gehören, sowie die Festlegung der Nutzungsbedingungen/-beschränkungen und einer Lizenz. Darüber hinaus sollte geprüft werden, welche Daten '''nicht''' veröffentlicht werden sollen, weil sie gefährdete Arten betreffen. In diesem Fall können bestimmte Datensätze komplett von der Veröffentlichung ausgeschlossen werden oder bestimmte Teile davon – z.B. die Koordinaten des Fundortes – gezielt verunschärft werden.
# Vorbereitung der Datenbank auf die Veröffentlichung. Dabei müssen die Entscheidung getroffen werden, ob die Live-Datenbank oder ein regelmäßig erzeugter Snapshot angebunden werden soll, und die Tabelle für die Metadaten angelegt und befüllt werden. In einigen Fällen sind weitere Datentransformationen nötig, siehe [[Preparation|Tutorial]].
# Installation der Provider Software, siehe [[Installation|Tutorial]].
# Anlegen einer BioCASe Datenquelle, Verbinden mit der Datenbank und Definition der Datenbankstruktur, siehe [[DatasourceSetup|Tutorial]].
# Anlegen eines [[ABCD2Mapping|ABCD2 Mappings]].
# Testen und Debuggen des BioCASe Webservices, siehe [[Debugging|Tutorial]].
# Nach Abschluss der Konfiguration kann der neue BioCASe-Webservice im Wunsch-Datennetzwerk angemeldet werden, z.B. bei [http://www.gbif.org GBIF]. Wir empfehlen jedoch, davor kurz das [[Special:Contact|BioCASe-Team zu kontaktieren]], das einen Blick auf den neuen Webservice werfen und auf Richtigkeit prüfen kann. Falsche Mappings lassen sich umso leichter korrigieren, je früher sie entdeckt werden.
==Support==
Bei Problemen während Installation und Konfiguration empfehlen wir
* In den [[FAQ]] nachzuschlagen, ob das Problem und eine Lösung dort beschrieben sind,
* Befreundete Nutzer der BioCASe Provider Software um Rat zu fragen, oder
* Kontakt mit dem [[Special:Contact|BioCASe Team]] aufzunehmen. Bitte dabei genau das verwendete System (verwendetes BioCASe-Version sowie Betriebs/Datenbankmanagementsystem), Fehlermeldungen und die Schritte, die dazu führten, beschreiben. Screenshots sind dabei immer von Vorteil.
4f07c2a4927e0a31abdeea1d9469e46778a408ae
828
826
2015-01-19T15:05:43Z
JoergHoletschek
3
wikitext
text/x-wiki
[[http://wiki.bgbm.org/bps/index.php/BeginnersGuide This page in English]]
==Was ist die BioCASe Provider Software?==
Die BioCASe Provider Software ist eine Middleware, also eine Software, die den Datenaustausch zwischen zwei voneinander entfernten Systemen erlaubt. Sie ermöglicht, Daten aus einem relationalen Datenbanksystem (z.B. einem Sammlungsverwaltungssystem) in ein Datennetzwerk einzuspeisen. Nach der Installation und Konfiguration von BioCASe sind die Daten als BioCASe Webservice im Internet verfügbar und können mittels BioCASe-Protokollanfragen abgerufen werden. Die Provider Software ist nicht abhängig von einem bestimmten Datenstandard und lässt sich mit einem beliebigen Datenschema verwenden.
Die Provider Software muss auf einem Webserver des Datenlieferanten installiert werden. Kern ist der sogenannte PyWrapper, eine in Python entwickelte XML/CGI-Datenschnittstelle, die einen standardisierten Zugriff auf eine Vielzahl von Datenbankmanagementsystemen mit beliebigen Datenmodellen ermöglicht. Um diese Schnittstelle herum existieren verschiedene Tools, die die Einrichtung, Konfiguration und den Test der BioCASe-Installation und –Webservices vereinfachen.
Obwohl BioCASe prinzipiell mit jedem XML-Datenschema verwendet werden kann, ist das Haupteinsatzfeld die Anbindung von biologischen Beleg- und Beobachtungsdaten an Primärdatennetzwerke zur Artenvielfalt wie dem [http://www.biocase.org BioCASe Netzwerk] und der [http://www.gbif.org Global Biodiversity Information Facility].
==Voraussetzungen für den Einsatz der BioCASe Provider Software==
Vor dem Einsatz der Provider Software sollte ein potentieller Datenlieferant drei Voraussetzungen prüfen:
* Die zu veröffentlichenden Sammlungs- oder Beobachtungsdaten müssen in einem SQL-fähigen relationalen Datenbankmanagementsystem vorhanden sein oder in einem Format, zu dem ein Zugang über ODBC (Open Database Connectivity) möglich ist, wie z.B. Microsoft Excel. Nicht-relationale Datenbankmanagementsysteme werden nicht unterstützt. Derzeit kann sich die Provider Software mit den folgenden Datenbanksystemen verbinden: Microsoft Access, Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Foxpro, Sybase, 4D, DB2, Firebird, Microsoft Excel.
* Zur Installation der Provider Software muss ein dauerhaft mit dem Internet verbundener Webserver vorhanden sein (Apache oder Microsoft IIS). Dies kann ein Server des Datenproviders oder eines kommerziellen Hosting-Dienstes sein. Eine Veröffentlichung über eine Dial-up-Verbindung ist nicht möglich.
* Auf diesem Webserver muss die Installation von Python (insofern es noch nicht installiert ist, was z.B. bei vielen gängigen Linux-Installationen der Fall ist) sowie zusätzlicher Python-Pakete möglich sein. Dies ist für Mitarbeiter der IT üblicherweise keine Hürde, solange dem keine institutionellen Richtlinien entgegenstehen. Für die optionale Erzeugung von DarwinCore-Archiven ist zusätzlich eine Java Runtime Environment nötig.
==Vorgehensweise==
Sollte die Wahl auf die BioCASe Provider Software fallen (bei der Entscheidungsfindung hilft das [[Special:Contact|BioCASe Team]] gerne weiter), umfasst eine Anbindung von Daten üblicherweise die folgenden Schritte:
# Entscheiden, welche Daten an das Netzwerk angebunden werden sollen. Dazu gehören die Klärung der Frage, wem die Daten eigentlich gehören, sowie die Festlegung der Nutzungsbedingungen/-beschränkungen und einer Lizenz. Darüber hinaus sollte geprüft werden, welche Daten '''nicht''' veröffentlicht werden sollen, weil sie gefährdete Arten betreffen. In diesem Fall können bestimmte Datensätze komplett von der Veröffentlichung ausgeschlossen werden oder bestimmte Teile davon – z.B. die Koordinaten des Fundortes – gezielt verunschärft werden.
# Vorbereitung der Datenbank auf die Veröffentlichung. Dabei müssen die Entscheidung getroffen werden, ob die Live-Datenbank oder ein regelmäßig erzeugter Snapshot angebunden werden soll, und die Tabelle für die Metadaten angelegt und befüllt werden. In einigen Fällen sind weitere Datentransformationen nötig, siehe [[Preparation|Tutorial]].
# Installation der Provider Software, siehe [[Installation|Tutorial]].
# Anlegen einer BioCASe Datenquelle, Verbinden mit der Datenbank und Definition der Datenbankstruktur, siehe [[DatasourceSetup|Tutorial]].
# Anlegen eines [[ABCD2Mapping|ABCD2 Mappings]].
# Testen und Debuggen des BioCASe Webservices, siehe [[Debugging|Tutorial]].
# Nach Abschluss der Konfiguration kann der neue BioCASe-Webservice im Wunsch-Datennetzwerk angemeldet werden, z.B. bei [http://www.gbif.org GBIF]. Wir empfehlen jedoch, davor kurz das [[Special:Contact|BioCASe-Team zu kontaktieren]], das einen Blick auf den neuen Webservice werfen und auf Richtigkeit prüfen kann. Falsche Mappings lassen sich umso leichter korrigieren, je früher sie entdeckt werden.
==Support==
Bei Problemen während Installation und Konfiguration empfehlen wir
* In den [[FAQ]] nachzuschlagen, ob das Problem und eine Lösung dort beschrieben sind,
* Befreundete Nutzer der BioCASe Provider Software um Rat zu fragen, oder
* Kontakt mit dem [[Special:Contact|BioCASe Team]] aufzunehmen. Bitte dabei genau das verwendete System (verwendetes BioCASe-Version sowie Betriebs/Datenbankmanagementsystem), Fehlermeldungen und die Schritte, die dazu führten, beschreiben. Screenshots sind dabei immer von Vorteil.
b71a421ced0b0b0ddd04df53d14d63bb855dc9b5
BeginnersGuide
0
49
827
593
2015-01-19T15:04:41Z
JoergHoletschek
3
wikitext
text/x-wiki
[[http://wiki.bgbm.org/bps/index.php/BeginnersGuide_de Diese Seite auf Deutsch]]
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, three requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
* For the web server in question, you must have the possibility to install Python (if it is not installed yet) and Python packages. Even though this can be done by the IT staff, you should make sure that there are no institutional policies colliding. If you want to create DarwinCore Archives, a Java Runtime Environment is required.
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
9afadbd2705affd05d35ce949e3b17c5729ecd52
847
827
2015-08-26T16:28:41Z
JoergHoletschek
3
/* Requirements for Using the BPS */
wikitext
text/x-wiki
[[http://wiki.bgbm.org/bps/index.php/BeginnersGuide_de Diese Seite auf Deutsch]]
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, four requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
* For the web server in question, you must have the possibility to install Python (if it is not installed yet) and Python packages. Even though this can be done by the IT staff, you should make sure that there are no institutional policies colliding. If you want to create DarwinCore Archives, a Java Runtime Environment is required.
* A direct connection can be established from the web server that will run the BPS to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL, 1433 for SQL Server).
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly you environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
8f5ff4e5e8fc8d12ad0fe95ce64cc1d84e295df1
Archiving
0
80
834
743
2015-06-25T13:05:12Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
26558cda20f03f0a43ef5afa4a75ec170090c4a2
835
834
2015-06-25T13:16:22Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1.
The dataset will list all datasets published by a given data source, each with its title and GUID. If archives exist for this dataset, they will be listed in ''archives''. For XML archives, the attribute namespace will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType" with the value '"http://rs.tdwg.org/dwc/terms/Occurrence".
027e9cc495bbebe63fd2cc9ae398f020595193d7
836
835
2015-06-25T13:17:52Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example [http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1].
The dataset will list all datasets published by a given data source, each with its title and GUID. If archives exist for this dataset, they will be listed in ''archives''. For XML archives, the attribute namespace will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType" with the value '"http://rs.tdwg.org/dwc/terms/Occurrence".
bec79d35dac608fd77c16ed6d3586bfe2b8a5893
837
836
2015-06-25T13:18:36Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1.
The dataset will list all datasets published by a given data source, each with its title and GUID. If archives exist for this dataset, they will be listed in ''archives''. For XML archives, the attribute namespace will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType" with the value '"http://rs.tdwg.org/dwc/terms/Occurrence".
027e9cc495bbebe63fd2cc9ae398f020595193d7
838
837
2015-06-25T13:22:49Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1.
<syntaxhighlight>
<dsi:inventory xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.5.3. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2015-06-25T15:22:51.805000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO</dsi:service_url>
<dsi:datasets><dsi:dataset>
<dsi:title>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:title>
<dsi:id>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:id>
<dsi:archives>
<dsi:archive filesize="143137" modified="2015-05-06T16:06:19.346807" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="823">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="128502" modified="2015-05-06T16:06:34.768532" rcount="823" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset will list all datasets published by a given data source, each with its title and GUID. If archives exist for this dataset, they will be listed in ''archives''. For XML archives, the attribute namespace will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType" with the value '"http://rs.tdwg.org/dwc/terms/Occurrence".
1ec186cbea8b9aa4194d549e92be35900110b40d
839
838
2015-06-25T13:34:23Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1.
<syntaxhighlight>
<dsi:inventory xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.5.3. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2015-06-25T15:22:51.805000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:title>
<dsi:id>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:id>
<dsi:archives>
<dsi:archive filesize="143137" modified="2015-05-06T16:06:19.346807" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="823">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="128502" modified="2015-05-06T16:06:34.768532" rcount="823" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>.
6218edd21f2edceced979d4f1d2c83b403a200cf
840
839
2015-06-25T14:41:41Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1.
<syntaxhighlight>
<dsi:inventory xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.5.3. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2015-06-25T15:22:51.805000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:title>
<dsi:id>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:id>
<dsi:archives>
<dsi:archive filesize="143137" modified="2015-05-06T16:06:19.346807" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="823">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="128502" modified="2015-05-06T16:06:34.768532" rcount="823" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset inventory will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>.
You can also view the dataset inventory using the manual QueryForm: Scroll down to the section ''Configuration Info'' and click on the link ''Inventory''. After a second, it will appear in the text box below.
e83a006fcde48dd779e9118d85ee1692ff1047f7
841
840
2015-06-26T07:03:03Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The Global Biodiversity Information Facility (GBIF), for example, can use this method for fast indexing of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1.
The dataset inventory response looks roughly like this (diagnostic messages have been removed for brevity):
<syntaxhighlight>
<dsi:inventory xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.5.3. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2015-06-25T15:22:51.805000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:title>
<dsi:id>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:id>
<dsi:archives>
<dsi:archive filesize="143137" modified="2015-05-06T16:06:19.346807" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="823">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="128502" modified="2015-05-06T16:06:34.768532" rcount="823" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset inventory will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>. The attribute ''rcount'' specifies the number of records stored in the archive file, ''filesize'' and ''modified'' are hopefully self-explanatory.
You can also view the dataset inventory using the manual QueryForm: Scroll down to the section ''Configuration Info'' and click on the link ''Inventory''. After a second, it will appear in the text box below.
1100e8bd1b50409d66d94f1146973eaebb50fe8b
842
841
2015-08-04T13:31:11Z
JoergHoletschek
3
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The OpenUp! natural history aggregator, for example, can use this method for fast harvesting of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO&inventory=1.
The dataset inventory response looks roughly like this (diagnostic messages have been removed for brevity):
<syntaxhighlight>
<dsi:inventory xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.5.3. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2015-06-25T15:22:51.805000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:title>
<dsi:id>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:id>
<dsi:archives>
<dsi:archive filesize="143137" modified="2015-05-06T16:06:19.346807" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="823">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="128502" modified="2015-05-06T16:06:34.768532" rcount="823" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset inventory will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>. The attribute ''rcount'' specifies the number of records stored in the archive file, ''filesize'' and ''modified'' are hopefully self-explanatory.
You can also view the dataset inventory using the manual QueryForm: Scroll down to the section ''Configuration Info'' and click on the link ''Inventory''. After a second, it will appear in the text box below.
9da3b58325071a0973a8a49adf222074b330f002
FAQ
0
52
863
797
2015-11-10T08:59:21Z
JoergHoletschek
3
/* I cannot meet all of the requirements for installing the BPS. What options do I have? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/ipt) you can create a DarwinCore Archive (see http://www.gbif.org/informatics/standards-and-tools/publishing-data/data-standards/darwin-core-archives/ for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
fbbf71955640e968a05d9094c883261d81326243
864
863
2015-11-10T09:01:15Z
JoergHoletschek
3
/* I cannot meet all of the requirements for installing the BPS. What options do I have? */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/ipt) you can create a DarwinCore Archive (see http://rs.tdwg.org/dwc/terms/guides/text/index.htm for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
01142234bdbffc31f393d0bcc18c889ea602e794
Glossary
0
48
865
333
2015-11-10T09:06:16Z
JoergHoletschek
3
wikitext
text/x-wiki
;ABCD Data Schema (Access to Biological Collection Data): XML data schema used for publishing specimen collections and observational databases to primary biodiversity networks such as BioCASe and GBIF. The current version of ABCD is 2.06.
;Apache HTTP Server (“Apache”): Widely used open-source web server software. Apache is available for most operating systems and recommended for running BioCASe.
;BioCASe Installation: An installation of the BioCASe Provider Software that offers one or several BioCASe Web Services.
;BioCASe Web Service: A web service offered by a BioCASe installation. A BioCASe web service provides access to the database to be published and can be queried using the BioCASe Protocol. It is uniquely identified by its URL, which is a combination of the BioCASe installation’s URL and the name of the data source, for example http://www.myinstitution.org/biocase/pywrapper.cgi?dsa=Herbar. See [[DatasourceSetup]] for more information on how to set up a BioCASe Web Service.
;BioCASe (Biological Collection Access Service) Network: A network of primary biodiversity data providers. Currently, BioCASe offers three different data portals: One on the German flora (http://search.biocase.de/botany), one for the biodiversity of Europe (http://search.biocase.org/europe) and one for global occurrence data (http://search.biocase.org/edit).
;BioCASE Project (Biological Collection Access Service for Europe): EU-funded project (2002-05) that developed standards and software for publishing primary biodiversity data (specimen collections and observational databases). Within the first years, the results comprised the BioCASe Protocol, the ABCD data schema and the BioCASe Provider Software.
;BioCASe Protocol: The protocol for querying a BioCASe web service. The protocol defines three types of requests: ''Capabilities'' for introspecting the configuration of a BioCASe web service, ''Scan'' for getting the distinctive values for a concept provided by the web service, and ''Search'' for retrieving the full set of information published for certain records.
;BioCASe Request: See BioCASe Protocol.
;BioCASe Technology (Biological Collection Access Service): The suite of standards and software developed by the BioCASE Project and its successors. Currently, the main components are the BioCASe Protocol, the ABCD data schema, BioCASe Provider Software, the SYNTHESYS Cache Generation System and the BioCASe Data Portal Software.
;BPS: BioCASe Provider Software; also called PyWrapper.
;Cache: A component (in the BioCASe context, usually a database or several database tables) that temporarily stores data from another source. In most cases, this is done in order to increase performance for information retrieval.
;Configuration tool (also Config Tool): Set of dialogs used for configuring a BioCASe installation or BioCASe web services.
;Database View: A virtual table in a database that offers another view on the data stored in the database. A view can combine data from several tables and transform, that is, translate, concatenate or pivot them. Updates of the underlying tables are always reflected in views drawing data from these tables.
;Datasource: In the BioCASe context, a datasource is database that is to be published as a BioCASe web service. Do not confuse that with an ODBC datasource that defines the connection parameters for connecting to a database through ODBC.
;DBMS: Database Management System.
;Debugging: The iterative process of testing, finding and correcting errors.
;Denormalisation: In a relational database, the information for real world objects are split into several tables, which is called normalisation. Denormalisation is the process of intentionally reversing this step for the sake of faster information retrieval.
;Firewall: Usually one device, a combination of several devices or a software shielding a local area network (LAN) from the internet. A firewall filters all network traffic between the LAN and the Internet, blocking unwanted protocols (i.e. applications) and ports. In a BioCASe context, servers should be placed in a way that no firewall is located between the web server running the Provider Software and the database server. In case there is a firewall in between, the port used by the database management system (e.g. 3306 for MySQL) must be opened.
;Global Biodiversity Information Facility (GBIF): International organisation for promoting free and universal access to worldwide primary biodiversity information. One of the main services offered is the GBIF Data Portal (http://www.gbif.org).
;Harvester: Application that retrieves all records published by a (BioCASe) web service and stores them in a local database. Harvesters are run by projects and initiatives that consume or aggregate primary biodiversity information, for example by GBIF for running the [http://www.gbif.org GBIF data portal].
;Identifier: In a database table, an identifier is a field that names a record in that table. Identifiers are usually unique, that means the identifier is different for each record.
;Internet Information Services (IIS): Web service platform integrated into Microsoft’s server operating systems (Server 2000, 2003 and 2008); can be used for running the BioCASe Provider Software.
;Local Query Tool: Component of the BioCASe Provider Software that can be used to access a BioCASe web service. The Query Tool offers a customizable, very simple and no-frills search interface for querying '''one''' (!) BioCASe web service.
;Mapping Editor: Page of the configuration tool for mapping concepts of the published data schema to the source tables/columns in the database.
;Metadata: Data about data. In the BioCASe context, this is a set of information describing the database published as a whole - title, description, curator’s name, ownership, date of last modification, terms of use etc.
;Open Database Connectivity (ODBC): Standard Interface for accessing relational database management systems. The connection parameters for connecting to a database through ODBC are defined in an ODBC Datasource.
;OS: Operating System (Windows, MacOS, Ubuntu, Debian, Ret Hat, Solaris etc.).
;Python: Platform independent programming language used for the BioCASe Provider Software.
;PyWrapper: Synonym for the BioCASe Provider Software (BPS), created from "Python Wrapper". Sort of "wraps" around the database to be published, exposing the data as a BioCASe compliant web service.
;Query Form: Component of the Provider Software for sending requests to a BioCASe web service and displaying the result documents; usually used for debugging a web service.
;Schema Mapping: The part of the configuration that tells the Provider Software how to create documents in a specific published data schema from the source database. A BioCASe web service can support several schemas (e.g. for ABCD and DarwinCore) by having several schema mappings.
;SQL (Structured Query Language): Language for managing data in relational database management systems, e.g. for information retrieval.
;Subversion: Software versioning and revision control system used for the BioCASe Provider Software. When installing BioCASe, the software can be downloaded directly from the Subversion repository (See [[Installation#Downloading from the Subversion Repository]]).
;Wrapper: In the BioCASe context a synonym for PyWrapper.
c776f9a7513511e1cbca9ef1e579670f76456b2e
User:DavidFichtmueller/monobook.js
2
73
866
290
2015-11-10T14:35:48Z
DavidFichtmueller
4
testing dead link finder
javascript
text/javascript
var deadLinkFinder_showOk = true;
var deadLinkFinder_fadeOk = true;
var deadLinkFinder_showBrowsemodeLink = true;
var deadLinkFinder_showWaitingIcon = true;
//var deadLinkFinder_language = "en";
var deadLinkFinder_namespaceFilter = [0,2,4,6,8,12,14,100];
//var deadLinkFinder_runAlways = true;
var deadLinkFinder_linkToLinkSearch = true;
var deadLinkFinder_showIndividualOK = true;
var deadLinkFinder_showRedirects = true;
var deadLinkFinder_showContentType = true;
mw.loader.load("//biowikifarm.org/tools/deadlinkfinder/script.js");
addOnloadHook(function(){
addPortletLink("p-personal","http://wiki.bgbm.org/bps/index.php?title=User:DavidFichtmueller/monobook.js&action=edit","monobook.js", "t-edit-vector","edit vector.js","v",document.getElementById("pt-preferences"));
var firstElement = document.getElementById("t-specialpages").parentNode.firstElementChild;
addPortletLink("p-tb","http://wiki.bgbm.org/bps/index.php/Special:RecentChanges","Recent Changes", "t-recent-changes","Recent Changes","s",firstElement);
if(wgNamespaceNumber==2 || wgNamespaceNumber==3){
//user namespace or user discussion namespace
var slashPos = wgTitle.indexOf('/');
var username = wgTitle;
if(slashPos != -1){
// it's a subpage
username = username.substring(0,slashPos);
}
addPortletLink("p-cactions","http://wiki.bgbm.org/bps/index.php/Special:Contributions/"+username,"Contributions", "ca-contributions","Contributions of "+username,"b",document.getElementById("ca-talk").nextElementSibling);
document.getElementById("ca-talk").style.marginRight="0.3em";
document.getElementById("ca-contributions").style.marginRight="1.6em";
}
}
); //closes addOnloadHook(
6584d50a3101cedccd3aeb4e0ca57cb36b58c119
User:JoergHoletschek/common.js
2
111
867
2015-11-12T10:10:54Z
JoergHoletschek
3
Created page with "var deadLinkFinder_showOk = true; var deadLinkFinder_fadeOk = true; var deadLinkFinder_showBrowsemodeLink = true; var deadLinkFinder_showWaitingIcon = true; //var deadLinkFind..."
javascript
text/javascript
var deadLinkFinder_showOk = true;
var deadLinkFinder_fadeOk = true;
var deadLinkFinder_showBrowsemodeLink = true;
var deadLinkFinder_showWaitingIcon = true;
//var deadLinkFinder_language = "en";
var deadLinkFinder_namespaceFilter = [0,2,4,6,8,12,14,100];
//var deadLinkFinder_runAlways = true;
var deadLinkFinder_linkToLinkSearch = true;
var deadLinkFinder_showIndividualOK = true;
var deadLinkFinder_showRedirects = true;
var deadLinkFinder_showContentType = true;
mw.loader.load("//biowikifarm.org/tools/deadlinkfinder/script.js");
b7add6220fdda751f5b742e4b035b81ea15ca70f
User:JoergHoletschek/common.css
2
112
868
2015-11-12T10:34:32Z
JoergHoletschek
3
Created page with "#p-tb{ display:block !important; }"
css
text/css
#p-tb{
display:block !important;
}
651a2024c9dbcdfbe422ddd06f1722b356804b98
BeginnersGuide
0
49
871
847
2015-11-26T12:33:22Z
JoergHoletschek
3
/* Support */
wikitext
text/x-wiki
[[http://wiki.bgbm.org/bps/index.php/BeginnersGuide_de Diese Seite auf Deutsch]]
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, four requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
* For the web server in question, you must have the possibility to install Python (if it is not installed yet) and Python packages. Even though this can be done by the IT staff, you should make sure that there are no institutional policies colliding. If you want to create DarwinCore Archives, a Java Runtime Environment is required.
* A direct connection can be established from the web server that will run the BPS to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL, 1433 for SQL Server).
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly your environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
f869d7a8e776050c8dbc89101c70e5b2d6afced6
VersionHistory
0
23
872
870
2016-01-18T13:40:24Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3f09d0cac3b769d6c7c4adcc58fa78ede00c7211
876
872
2016-03-14T16:16:50Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4296f6bf1b57ac336e40fa9ace509102755e32a8
877
876
2016-03-14T16:22:24Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c4eff6d90061228d1bd216f226f9c25d851a61da
878
877
2016-03-14T16:38:35Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8aae63af500ef12d74be8bca82e975cd09bc2f80
879
878
2016-03-31T14:40:28Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for DarwinCore transformation (one identification lost when identical scientific names were provided as both a preferred and a non-preferred identification)
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2b6e35a18eeda5a1b50aeac9eacac23799ed2a25
880
879
2016-04-01T12:57:25Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfixes for DarwinCore transformation:
** One of the identifications lost if identical scientific names were provided for both a preferred and a non-preferred identification
** HigherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6ea921406801a57872c6f1531276882512203321
881
880
2016-04-07T11:22:53Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Changes in DarwinCore transformation:
** Transformation streamlined
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9ab5432e7e04a3a479b72acf5d806301eff64eae
882
881
2016-04-12T15:45:30Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Changes in DarwinCore transformation:
** Transformation streamlined
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Bugfix in metadata retrieval for dbmod_pymssql.
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7c0416aceaab4b293c4cca84e056effb96dea127
883
882
2016-05-19T12:24:17Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Bugfix in metadata retrieval for dbmod_pymssql.
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b6e6b30b6f6d047391bed98358ac82dece9c0248
884
883
2016-06-16T07:38:02Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Bugfix in metadata retrieval for dbmod_pymssql.
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
db407cdc597ed2b43e634ba8b528d2380141547b
885
884
2016-06-16T09:50:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
bd3cb26e874488119ccb6d7d48facaf64af8ff2b
886
885
2016-07-21T09:05:16Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.1 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a3901efded4366187a33a5c18d9ee19b6ae00f3e
887
886
2016-07-21T09:05:25Z
JoergHoletschek
3
/* Version 3.6.1 [2016-07-21] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
afc2b0482cbdc51f5799d463abb8bb265f872f05
888
887
2016-07-21T13:21:05Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Small bugfix for dbmod_oracle
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2c9d78ebd6617214c32588fe1139b9d7a4f0ed04
892
888
2016-07-28T14:38:03Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fix/change for dbmod_oracle.py: Paging is now faster
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
d748edd42706e2cfb62ab77190b1754ecfcba89d
894
892
2016-08-04T10:52:28Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DwC arhive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b56f4648d041f0e5284f2bb64a64ce4788f32fc9
896
894
2016-08-08T08:52:36Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ab01d3d95bb14302afa01835b23d9eac4d39c8f2
897
896
2016-08-08T16:22:02Z
JoergHoletschek
3
/* Upcoming [2016-08-08] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8bc12f962293bdce1a00d0ec25fa888f09842661
901
897
2016-10-21T14:29:49Z
JoergHoletschek
3
/* Version 3.6.3 [2016-08-08] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a6fc00563152987e6d68e373fa7a2a699317104b
902
901
2016-11-09T11:50:02Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for "remove cached objects" in system administration
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3cd0bb2b2b040cae607a1189a0b333da1c2c827b
903
902
2016-12-12T10:27:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4359bbd45885bd1c984cfd762359ab26bebd730b
904
903
2017-03-12T17:20:19Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
afc91361e0bcb434e74a7e577d9d08745d78219a
905
904
2017-04-04T12:46:00Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f2c26c87f4be37a576ea70e4baab92af0630c468
906
905
2017-05-03T12:14:01Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
927b323d33e014541d9ecb5bca1c82d241d4f6b8
907
906
2017-05-16T15:58:32Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
effa72a037f46df5c0f212cc6fed4943cfe063c0
908
907
2017-05-22T15:27:02Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
60259631493a6ad63b5d7203fac7e1b65920a89f
909
908
2017-07-04T12:51:24Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e098b118a12705e577c667d8c8499f9502499bde
910
909
2017-08-17T13:42:55Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5ad51352162edecb0b28f0121f4cbbd42ff38ad4
911
910
2017-08-28T10:25:01Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f9324a13c45d74dae0fd61d2b7d506dbb843b0c6
912
911
2017-09-13T12:49:41Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
0a4a88b8dad5f4ff6b5235695dcff5f44a8281b5
913
912
2017-09-26T10:08:13Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example openjre)
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
959ea918f8256916a9982e33fbdc388d5f486e1b
914
913
2017-09-26T10:27:57Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b48181a2f74cc0d88379ee333a5e28ae21bb3413
918
914
2017-11-16T10:40:19Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [http://www.example.com AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a5317faa9f5d5066abaaef734ccc9803417b847d
919
918
2017-11-22T14:37:14Z
JoergHoletschek
3
/* Version 3.6.4 [2017-07-04] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4bad3ac3e8f96dad31002c38b5de390954b2c29c
920
919
2017-12-06T14:49:20Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e398e86093b7ff4d02cfb95b87ab25c95dea5548
User:178.150.15.176
2
113
873
2016-03-05T21:58:18Z
178.150.15.176
0
Good say's!
wikitext
text/x-wiki
Perfectly written!
I will right away grab your rss as I can not to find your
email subscription hyperlink or e-newsletter service.
Do you’ve any? Kindly permit me realize in order that I may subscribe.
9828e55c073439d156545ae863420b1a53d9a158
874
873
2016-03-14T10:54:17Z
JoergHoletschek
3
wikitext
text/x-wiki
Perfectly written!
I will right away grab your rss as I can not to find your
email subscription hyperlink or e-newsletter service.
Do you’ve any? Kindly permit me realize in order that I may subscribe.
---------------
Dear user,
we don't have news letter. But all news regarding the BioCASe Provider Software will be announced on the RSS feed available here: http://www.biocase.org/rss.xml
If you have any further questions, please use the contact form or the email address given on that page.
Cheers,
Jörg
6214a935312ec2ed709ad79862b6e7675a6b0dbd
875
874
2016-03-14T10:54:51Z
JoergHoletschek
3
wikitext
text/x-wiki
Perfectly written!
I will right away grab your rss as I can not to find your
email subscription hyperlink or e-newsletter service.
Do you’ve any? Kindly permit me realize in order that I may subscribe.
---------------
Dear user,
we don't have news letter. But all news regarding the BioCASe Provider Software will be announced on the RSS feed available here: http://www.biocase.org/rss.xml
If you have any further questions, please use the contact form or the email address given on that page: http://wiki.bgbm.org/bps/index.php/Special:Contact
Cheers,
Jörg
afe006b2310ceacfc81a8cb88f3f67679b37800b
CommonABCD2Concepts
0
22
889
700
2016-07-27T09:12:12Z
JoergHoletschek
3
/* Highly Recommended */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
├─ IPRStatements
│ └─ Citations
│ └─ Citation
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
6c5808a0945259f9e454015074dc60764b0161b0
890
889
2016-07-27T09:18:23Z
JoergHoletschek
3
/* Highly Recommended */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
If you publish your data to GBIF, you are required to specify a license in the ''Citation'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
├─ IPRStatements
│ └─ Citations
│ └─ Citation
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
576409b62c5fa13a2fbdb4ea73536d6eab5928ea
891
890
2016-07-27T09:27:00Z
JoergHoletschek
3
/* Highly Recommended */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''Citation'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ └─ Owners
│ └─ Owner
│ ├─ LogoURI
│ ├─ URIs
│ │ └─ URL
│ ├─ Person
│ │ └─ FullName
│ └─ Organisation
│ └─ Name
│ └─ Representation
│ └─ Text
├─ IPRStatements
│ └─ Citations
│ └─ Citation
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
7d3a8963d4dc16c56ebd19972581d0ef9605a362
893
891
2016-08-03T17:25:02Z
JoergHoletschek
3
/* Highly Recommended */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''Citation'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ ├─ Owners
│ │ └─ Owner
│ │ ├─ LogoURI
│ │ ├─ URIs
│ │ │ └─ URL
│ │ ├─ Person
│ │ │ └─ FullName
│ │ └─ Organisation
│ │ └─ Name
│ │ └─ Representation
│ │ └─ Text
│ └─ IPRStatements
│ └─ Citations
│ └─ Citation
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
b87148f0e8ced149a67a8742214642174792c9df
895
893
2016-08-04T15:18:07Z
JoergHoletschek
3
/* Highly Recommended */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki], a full list of ABCD concepts [http://wiki.tdwg.org/twiki/bin/view/ABCD/AbcdConcepts here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ ├─ Owners
│ │ └─ Owner
│ │ ├─ LogoURI
│ │ ├─ URIs
│ │ │ └─ URL
│ │ ├─ Person
│ │ │ └─ FullName
│ │ └─ Organisation
│ │ └─ Name
│ │ └─ Representation
│ │ └─ Text
│ └─ IPRStatements
│ └─ Licenses
│ └─ License
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
454cce88a766a3af5c0d02be4a40d8ab96482472
898
895
2016-09-12T08:48:04Z
JoergHoletschek
3
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a tabular list of ABCD concepts [http://terms.tdwg.org/wiki/ABCD_2_XPath_to_Short_Name_Mapping here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ ├─ Owners
│ │ └─ Owner
│ │ ├─ LogoURI
│ │ ├─ URIs
│ │ │ └─ URL
│ │ ├─ Person
│ │ │ └─ FullName
│ │ └─ Organisation
│ │ └─ Name
│ │ └─ Representation
│ │ └─ Text
│ └─ IPRStatements
│ └─ Licenses
│ └─ License
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
3be3785e1920cf72c1882ed25ac3fad94d14e0d3
ABCD2Mapping
0
29
899
462
2016-09-12T08:49:14Z
JoergHoletschek
3
/* Access to Biological Collection Data Schema (ABCD) */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://wiki.tdwg.org/ABCD ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
0620093a469d52ee1fc0713793ff7d17440e74cd
900
899
2016-09-12T08:49:41Z
JoergHoletschek
3
/* Adding additional ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
e292a2d7d271ac0d30e1cc717a1e416d4b324270
Archiving
0
80
915
842
2017-11-01T09:57:51Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The OpenUp! natural history aggregator, for example, can use this method for fast harvesting of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar&inventory=1.
The dataset inventory response looks roughly like this (diagnostic messages have been removed for brevity):
<syntaxhighlight>
<dsi:inventory xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.5.3. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2015-06-25T15:22:51.805000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=BoBO</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:title>
<dsi:id>BoBO - Botanic Garden and Botanical Museum Berlin-Dahlem Observations</dsi:id>
<dsi:archives>
<dsi:archive filesize="143137" modified="2015-05-06T16:06:19.346807" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="823">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="128502" modified="2015-05-06T16:06:34.768532" rcount="823" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/BoBO/BoBO%20-%20Botanic%20Garden%20and%20Botanical%20Museum%20Berlin-Dahlem%20Observations.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset inventory will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>. The attribute ''rcount'' specifies the number of records stored in the archive file, ''filesize'' and ''modified'' are hopefully self-explanatory.
You can also view the dataset inventory using the manual QueryForm: Scroll down to the section ''Configuration Info'' and click on the link ''Inventory''. After a second, it will appear in the text box below.
cdcdef510ba413c93a92ec2c81d64c217e469444
916
915
2017-11-01T10:01:03Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The OpenUp! natural history aggregator, for example, can use this method for fast harvesting of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar&inventory=1.
The dataset inventory response looks roughly like this (diagnostic messages have been removed for brevity):
<syntaxhighlight>
<dsi:inventory xmlns:dsi="http://www.biocase.org/schemas/dsi/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.6.4. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2017-11-01T10:58:38.109000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>Herbarium Berolinense</dsi:title>
<dsi:id>Herbarium Berolinense</dsi:id>
<dsi:archives>
<dsi:archive filesize="20187103" modified="2017-04-20T12:59:33.810767" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="206223">http://ww3.bgbm.org/biocase/downloads/Herbar/Herbarium%20Berolinense.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="12373841" modified="2017-04-20T13:16:03.772798" rcount="206223" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/Herbar/Herbarium%20Berolinense.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset inventory will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>. The attribute ''rcount'' specifies the number of records stored in the archive file, ''filesize'' and ''modified'' are hopefully self-explanatory.
You can also view the dataset inventory using the manual QueryForm: Scroll down to the section ''Configuration Info'' and click on the link ''Inventory''. After a second, it will appear in the text box below.
bf5dbf0cae4e98eb497fed70b0c82d20ce7997b5
917
916
2017-11-01T10:09:41Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The OpenUp! natural history aggregator, for example, can use this method for fast harvesting of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar&inventory=1.
The dataset inventory response looks roughly like this (diagnostic messages have been removed for brevity):
<syntaxhighlight>
<dsi:inventory xmlns:dsi="http://www.biocase.org/schemas/dsi/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.6.4. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2017-11-01T10:58:38.109000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>Herbarium Berolinense</dsi:title>
<dsi:id>Herbarium Berolinense</dsi:id>
<dsi:archives>
<dsi:archive filesize="20187103" modified="2017-04-20T12:59:33.810767" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="206223">http://ww3.bgbm.org/biocase/downloads/Herbar/Herbarium%20Berolinense.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="12373841" modified="2017-04-20T13:16:03.772798" rcount="206223" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/Herbar/Herbarium%20Berolinense.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset inventory will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>. The attribute ''rcount'' specifies the number of records stored in the archive file, ''filesize'' and ''modified'' are hopefully self-explanatory.
You can also view the dataset inventory using the manual QueryForm: Scroll down to the section ''Configuration Info'' and click on the link ''Inventory''. After a second, it will appear in the text box below.
35fc896c4e15f498105bc4a0703db251a69a3328
VersionHistory
0
23
921
920
2018-03-12T16:47:45Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
51dc483f2e040be8b6f3b41b201c9f13eaa2f0c0
922
921
2018-03-19T15:25:50Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
fdd605846e2cf5a6cbeccec2f95f2d1173e37b09
926
922
2018-04-18T09:07:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
685584462f42c2cc94000f68176b07d3fbbed7ad
927
926
2018-04-18T09:12:55Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default values for bpsPath (in adjustpath.py) and graphvizPath (config.ini) set to Debian defaults for easier dockerisation.
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
883079dd0f0467e598e3b933ce56037f3be9f0ee
928
927
2018-04-18T09:37:09Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1ec034bf7a96247344d20b8496a096694984f5f3
929
928
2018-04-23T09:28:49Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
73c361f588ce8b49907923c0d234e2fc5f2d3d76
930
929
2018-04-27T08:02:40Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e280ba5305853e501289949f4debbf16045af6c8
931
930
2018-05-25T11:14:29Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fixes
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
88a4019f4c95cb207238f898497a3a406161f7f0
967
931
2018-05-30T08:40:02Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
818b0a702301cd71c4b6794cc0899d369310714b
968
967
2018-05-30T09:23:45Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f7a627b3155e2870067856154fbb75678eb82da4
969
968
2018-05-30T09:25:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully dunctional demo data source included (uses included Sqlite database).
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
d518cf901f42ff9e120d9a9408b3e1b75d98e07f
970
969
2018-06-12T08:53:28Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully dunctional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
02199eb8147725174e02d2c3c6e089322c5bc78f
SampleABCDDocument
0
40
923
282
2018-04-10T15:15:59Z
DavidFichtmueller
4
xml errors removed
wikitext
text/x-wiki
This page shows a sample response ABCD2 document for a web service with 77 concepts mapped. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees.
<syntaxhighlight lang="xml">
<?xml version='1.0' encoding='UTF-8'?>
<biocase:response xmlns:abcd="http://www.tdwg.org/schemas/abcd/2.06" xmlns:biocase="http://www.biocase.org/schemas/protocol/1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tdwg.org/schemas/abcd/2.06 http://www.bgbm.org/TDWG/CODATA/Schema/ABCD_2.06/ABCD_2.06.XSD http://www.biocase.org/schemas/protocol/1.3 http://www.bgbm.org/biodivinf/schema/protocol_1_31.xsd">
<!-- XML generated by BioCASE PyWrapper software version 2.6.0. Made in Berlin. -->
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
<biocase:content recordCount="10" recordDropped="0" recordStart="0" totalSearchHits="11">
<abcd:DataSets>
<abcd:DataSet>
<abcd:TechnicalContacts>
<abcd:TechnicalContact>
<abcd:Name>Botanic Garden and Botanical Museum Berlin-Dahlem</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Address>Königin-Luise-Str. 6-8, D-14195 Berlin</abcd:Address>
</abcd:TechnicalContact>
</abcd:TechnicalContacts>
<abcd:ContentContacts>
<abcd:ContentContact>
<abcd:Name>Dr. ...</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Phone>+49 ...</abcd:Phone>
<abcd:Address>..., D-22609 Hamburg</abcd:Address>
</abcd:ContentContact>
</abcd:ContentContacts>
<abcd:Metadata>
<abcd:Description>
<abcd:Representation language="EN">
<abcd:Title>Desmidiaceae Engels</abcd:Title>
<abcd:Details>A new record of reference material of the Desmidiaceae of Germany was compiled, using the databank “Specify”. Aim of the project was to summarize and digitalize the data of the dried and otherwise preserved specimens stored in the German herbaria as well as of the living strains, cultured in culture collections. Many of the references are completed by figures of the labels or by scanned micrographs from preparations for the light- or scanning microscopes.</abcd:Details>
<abcd:URI>http://www.gbif.de/botanik/projekte/desmidiaceae_hamburg_ffm/index_html</abcd:URI>
</abcd:Representation>
</abcd:Description>
<abcd:IconURI>http://ww3.bgbm.org/providerResources/BzF.jpg</abcd:IconURI>
<abcd:RevisionData>
<abcd:Creators>Desmidiaceae Engels (BzF)</abcd:Creators>
<abcd:DateModified>2008-01-23T00:00:00</abcd:DateModified>
</abcd:RevisionData>
<abcd:Owners>
<abcd:Owner>
<abcd:Organisation>
<abcd:Name>
<abcd:Representation language="EN">
<abcd:Text>Biozentrum Klein-Flottbek, Universität Hamburg</abcd:Text>
<abcd:Abbreviation>BzF</abcd:Abbreviation>
</abcd:Representation>
</abcd:Name>
</abcd:Organisation>
</abcd:Owner>
</abcd:Owners>
<abcd:IPRStatements>
<abcd:IPRDeclarations>
<abcd:IPRDeclaration language="EN">
<abcd:Text>The Intellectual Property Rights are held by the legal owner or, in case of living persons, by the collector or determinator.</abcd:Text>
</abcd:IPRDeclaration>
</abcd:IPRDeclarations>
<abcd:Copyrights>
<abcd:Copyright language="EN">
<abcd:Text>No part of this data base may be copied or reproduced without written permission from the legal owner.</abcd:Text>
</abcd:Copyright>
</abcd:Copyrights>
<abcd:TermsOfUseStatements>
<abcd:TermsOfUse language="EN">
<abcd:Text>The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The database or part of it may only be used or copied by the written permission from the legal owner. If used for publication, we ask for a copy or an off-print.</abcd:Text>
</abcd:TermsOfUse>
</abcd:TermsOfUseStatements>
<abcd:Disclaimers>
<abcd:Disclaimer language="EN">
<abcd:Text>No responsibility is accepted for the accuracy of the information in this database.</abcd:Text>
</abcd:Disclaimer>
</abcd:Disclaimers>
<abcd:Acknowledgements>
<abcd:Acknowledgement language="EN">
<abcd:Text>The authors are much indebted to the Scientists of the Informatics Biodiversity Research Center der University of Kansas, USA (http://www.specifysoftware.org), who developed the ?Specify?-Software. Many thanks also to the curators of different Herbaria: Dr. Regine Jahn (BGBM, FU-Berlin), Dr. Dagmar Triebel (Botanische Staatssammlung München), Dr. Monika Steinhof (Übersee Museum Bremen), Christian Blümel (Universität Rostock) and Dr. Christian Printzen (Forschungsinstitut Senckenberg Frankfurt a.M.). Last not least thanks to the busy co-workers Sebastian Frerichmann, Maas Mollenhauer, Constanze Kovaci and Petra Kretschmann.</abcd:Text>
</abcd:Acknowledgement>
</abcd:Acknowledgements>
<abcd:Citations>
<abcd:Citation language="EN">
<abcd:Text>Engels, Monika 2003 - (continuously updated) Catalogus novus et amplificatus speciminum et viventium algarum Desmidiacearum (New and extended catalogue of herbarium specimen and living material of Desmidiaceae in Germany).</abcd:Text>
</abcd:Citation>
</abcd:Citations>
</abcd:IPRStatements>
</abcd:Metadata>
<abcd:Units>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6239</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Stockholm 1877-1889, Vol. 1-26</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Mesotaeniaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Zygnematales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Ancylonema nordenskiöldii</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Date>
<abcd:DateText>1878-07-18</abcd:DateText>
</abcd:Date>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6239.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1878</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Brixdal</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>NO</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordfjord</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08107; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3397</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1872-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3397.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1872</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Reichenberg</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Dresden</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">bei Reichenberg, see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8186; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-2483</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium turgidum Bréb. 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 32: 8</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium turgidum (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium turgidum p. 110, tab. 32: 8; taxon citation: invalidly published as A. turgidum (Bréb.) Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100 - p.395, fig.21; Validation by R?ži?ka & Pouzar 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: 13 - 66 p.60</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</syntaxhighlight>
991cb2bf189d6057e3abe1e89cfa07eeb8644013
924
923
2018-04-10T15:17:30Z
DavidFichtmueller
4
wikitext
text/x-wiki
This page shows a sample response ABCD2 document for a web service with 77 concepts mapped. For easier viewing, you can save the contents of the box into a file with the extension .xml and open that in Firefix or MS Internet Explorer (don't use Safari). You will then be able to collapse the different XML sub trees.
<syntaxhighlight lang="xml">
<?xml version='1.0' encoding='UTF-8'?>
<biocase:response xmlns:abcd="http://www.tdwg.org/schemas/abcd/2.06" xmlns:biocase="http://www.biocase.org/schemas/protocol/1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tdwg.org/schemas/abcd/2.06 http://www.bgbm.org/TDWG/CODATA/Schema/ABCD_2.06/ABCD_2.06.XSD http://www.biocase.org/schemas/protocol/1.3 http://www.bgbm.org/biodivinf/schema/protocol_1_31.xsd">
<!-- XML generated by BioCASE PyWrapper software version 2.6.0. Made in Berlin. -->
<biocase:header>
<biocase:version software="os">nt</biocase:version>
<biocase:version software="python">2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]</biocase:version>
<biocase:version software="pywrapper">2.6.0</biocase:version>
<biocase:version software="dbmod">MS SQL Server module v1.01 using ceODBC ?</biocase:version>
<biocase:sendTime>2011-06-29T16:00:47.253000</biocase:sendTime>
<biocase:source>AlgenEngels@localhost</biocase:source>
<biocase:destination>127.0.0.1</biocase:destination>
<biocase:type>search</biocase:type>
</biocase:header>
<biocase:content recordCount="10" recordDropped="0" recordStart="0" totalSearchHits="11">
<abcd:DataSets>
<abcd:DataSet>
<abcd:TechnicalContacts>
<abcd:TechnicalContact>
<abcd:Name>Botanic Garden and Botanical Museum Berlin-Dahlem</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Address>Königin-Luise-Str. 6-8, D-14195 Berlin</abcd:Address>
</abcd:TechnicalContact>
</abcd:TechnicalContacts>
<abcd:ContentContacts>
<abcd:ContentContact>
<abcd:Name>Dr. ...</abcd:Name>
<abcd:Email>...@...</abcd:Email>
<abcd:Phone>+49 ...</abcd:Phone>
<abcd:Address>..., D-22609 Hamburg</abcd:Address>
</abcd:ContentContact>
</abcd:ContentContacts>
<abcd:Metadata>
<abcd:Description>
<abcd:Representation language="EN">
<abcd:Title>Desmidiaceae Engels</abcd:Title>
<abcd:Details>A new record of reference material of the Desmidiaceae of Germany was compiled, using the databank “Specify”. Aim of the project was to summarize and digitalize the data of the dried and otherwise preserved specimens stored in the German herbaria as well as of the living strains, cultured in culture collections. Many of the references are completed by figures of the labels or by scanned micrographs from preparations for the light- or scanning microscopes.</abcd:Details>
<abcd:URI>http://www.gbif.de/botanik/projekte/desmidiaceae_hamburg_ffm/index_html</abcd:URI>
</abcd:Representation>
</abcd:Description>
<abcd:IconURI>http://ww3.bgbm.org/providerResources/BzF.jpg</abcd:IconURI>
<abcd:RevisionData>
<abcd:Creators>Desmidiaceae Engels (BzF)</abcd:Creators>
<abcd:DateModified>2008-01-23T00:00:00</abcd:DateModified>
</abcd:RevisionData>
<abcd:Owners>
<abcd:Owner>
<abcd:Organisation>
<abcd:Name>
<abcd:Representation language="EN">
<abcd:Text>Biozentrum Klein-Flottbek, Universität Hamburg</abcd:Text>
<abcd:Abbreviation>BzF</abcd:Abbreviation>
</abcd:Representation>
</abcd:Name>
</abcd:Organisation>
</abcd:Owner>
</abcd:Owners>
<abcd:IPRStatements>
<abcd:IPRDeclarations>
<abcd:IPRDeclaration language="EN">
<abcd:Text>The Intellectual Property Rights are held by the legal owner or, in case of living persons, by the collector or determinator.</abcd:Text>
</abcd:IPRDeclaration>
</abcd:IPRDeclarations>
<abcd:Copyrights>
<abcd:Copyright language="EN">
<abcd:Text>No part of this data base may be copied or reproduced without written permission from the legal owner.</abcd:Text>
</abcd:Copyright>
</abcd:Copyrights>
<abcd:TermsOfUseStatements>
<abcd:TermsOfUse language="EN">
<abcd:Text>The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The database or part of it may only be used or copied by the written permission from the legal owner. If used for publication, we ask for a copy or an off-print.</abcd:Text>
</abcd:TermsOfUse>
</abcd:TermsOfUseStatements>
<abcd:Disclaimers>
<abcd:Disclaimer language="EN">
<abcd:Text>No responsibility is accepted for the accuracy of the information in this database.</abcd:Text>
</abcd:Disclaimer>
</abcd:Disclaimers>
<abcd:Acknowledgements>
<abcd:Acknowledgement language="EN">
<abcd:Text>The authors are much indebted to the Scientists of the Informatics Biodiversity Research Center der University of Kansas, USA (http://www.specifysoftware.org), who developed the ?Specify?-Software. Many thanks also to the curators of different Herbaria: Dr. Regine Jahn (BGBM, FU-Berlin), Dr. Dagmar Triebel (Botanische Staatssammlung München), Dr. Monika Steinhof (Übersee Museum Bremen), Christian Blümel (Universität Rostock) and Dr. Christian Printzen (Forschungsinstitut Senckenberg Frankfurt a.M.). Last not least thanks to the busy co-workers Sebastian Frerichmann, Maas Mollenhauer, Constanze Kovaci and Petra Kretschmann.</abcd:Text>
</abcd:Acknowledgement>
</abcd:Acknowledgements>
<abcd:Citations>
<abcd:Citation language="EN">
<abcd:Text>Engels, Monika 2003 - (continuously updated) Catalogus novus et amplificatus speciminum et viventium algarum Desmidiacearum (New and extended catalogue of herbarium specimen and living material of Desmidiaceae in Germany).</abcd:Text>
</abcd:Citation>
</abcd:Citations>
</abcd:IPRStatements>
</abcd:Metadata>
<abcd:Units>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6239</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Stockholm 1877-1889, Vol. 1-26</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Mesotaeniaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Zygnematales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Ancylonema nordenskiöldii</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Date>
<abcd:DateText>1878-07-18</abcd:DateText>
</abcd:Date>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6239.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1878</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Nordstedt, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Brixdal</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>NO</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordfjord</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08107; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3397</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1872-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3397.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1872</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Siegmund, W.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Reichenberg</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Dresden</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">bei Reichenberg, see label</abcd:AreaDetail>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8186; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-2483</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium turgidum Bréb. 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 32: 8</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium turgidum (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium turgidum p. 110, tab. 32: 8; taxon citation: invalidly published as A. turgidum (Bréb.) Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100 - p.395, fig.21; Validation by R?ži?ka & Pouzar 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: 13 - 66 p.60</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Pleurotaenium turgidum De Bary 1858</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>De Bary, A: Untersuchungen über die Familie der Conjugaten (Zygnemeen und Desmidieen)., Leipzig 1858</abcd:TitleCitation>
<abcd:CitationDetail>p. 91</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 75, tab. 5: 31; invalidly published</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:LocalityText language="DE">Neukirch</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Chemnitz</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">Oberlausitz, Neukirch</abcd:AreaDetail>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 7474; Specimen Location: HBG. together with Closterium hybridum, Pl. truncatum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4603</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus octocornis var. major Roy & Biss. 1894</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:Notes>see label</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/4602.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8773; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6764</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium curtum var. attenuatum (Bréb.) Teil. ex Ruzicka & Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>as Cosmarium attenuatum p. 110, tab. 17: 9; taxon citation: Teiling, E., 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Not., Lund, 1954, p. 391, fig. 2; invaldly published; Validation: Ruzicka, J., & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung ActinotaeniumTEIL. - Folia geobot. Phytotax., Praha, 13: 33-66., p.47</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium attenuatum Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Richter, Paul</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 110, tab. 17: 9a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rogers,</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Ennepetal-Milspe</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Nordrhein-Westfalen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Hagen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:Biotope>
<abcd:Text language="DE">an einer Felsenwand</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08307; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-3698</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Algae aquae dulcis exsiccatae praecique scandinavicae, quas adjectis algis marinis chlorophyllaceis et phycochromaceis distribuerunt., Lund 1896-1903, Vol. 27-34</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium palangula (Brébisson) Teiling 1954 ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21; taxon citation: Ruzicka, J. & Pouzar, Z., 1978: Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.46</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium palangula Brébisson in Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1898-07-06</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 212; original figure: Brébisson 1856: p.132, tab.1: 21</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-HBG-Konv/3690-3703.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1898</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bohlin, Knut</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Pico da Cruz</abcd:LocalityText>
<abcd:Notes language="EN">Africa</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8328; Specimen Location: HBG. sample contains: Cosmarium ralfsii var. azoricum, Cosmarium palangula, Cosmarium pyramidatum, Cosmarium venustum, Euastru didelta f. scorbiculata, Staurastrum muticum var. depressum, Staurastrum scabrum</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-4569</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Die Algen Europa's (Fortsetzung der Algen Sachsens, resp. Mittel-Europa's)., Dresden 1861 - 1879, Vol. Dec. 101 - 259</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus convergens (Ehrenberg ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d; taxon citation: Teiling, E., 1948: Staurodesmus, genus novum.Containing monospinous desmids. - Bot. Not., Lund, 1948: p. 57</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus convergens Ehrenberg ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 3a-d</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Rostock, M.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Dretschen</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Bautzen</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: 8751; Specimen Location: HBG.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-7071</abcd:UnitID>
<abcd:UnitReferences>
<abcd:UnitReference>
<abcd:TitleCitation>Kryptogamae exsiccatae editae a museo hist. natur. vindobonensi., Wien 1894 ff</abcd:TitleCitation>
</abcd:UnitReference>
</abcd:UnitReferences>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus quadricaudatus</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>0</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Hansgirg, A.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Bombay</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>IN</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Bombay</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:Biotope>
<abcd:Name language="EN">other</abcd:Name>
<abcd:Text language="DE">see label</abcd:Text>
</abcd:Biotope>
<abcd:Notes language="EN">Asia</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08385; Specimen Location: B. sample contains: Cosmarium nitidulum, Arthrodesmus quadricaudatus</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6250</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Staurodesmus incus (Brébisson ex Ralfs) Teiling 1967</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 118, tab. 20: 4 as Arthrodesmus incus; taxon citation: Teiling, E., 1967: The desmid genus Staurodesmus. A taxonomic study. Ark. f. Bot. II, 6(11), p. p. 511, tab. 5: 9</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Arthrodesmus incus (Bréb.) Hassall ex Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1889-08-08</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 118, tab. 20: 4a-l</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1889</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Borge, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Väddö</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>SE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Upland</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Väddö</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 32088; Specimen Location: B.</abcd:Notes>
</abcd:Unit>
<abcd:Unit>
<abcd:SourceInstitutionID>BzF</abcd:SourceInstitutionID>
<abcd:SourceID>Desmidiaceae Engels</abcd:SourceID>
<abcd:UnitID>Main-1-6897</abcd:UnitID>
<abcd:Identifications>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Actinotaenium cucurbita (Brébisson) Teiling ex Ruzicka et Pouzar 1978</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>true</abcd:PreferredFlag>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Notes>p. 108, tab. 17: 7a-e as Cosmarium cucurbita; taxon citation: Teiling, E. 1954: Actinotaenium genus Desmidiacearum resuscitatum. - Bot. Notiser 100, p. 406, fig. 66 (invalidy pblished). Validation: Ruzicka, J. & Pouzar, Z. 1978:Erwägungen über die Taxonomie und Nomenklatur der Gattung Actinotaenium TEIL. - Folia Geobot. Phytotax., Praha, 13: p.44</abcd:Notes>
</abcd:Identification>
<abcd:Identification>
<abcd:Result>
<abcd:TaxonIdentified>
<abcd:HigherTaxa>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiaceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>familia</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Desmidiales</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>ordo</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
<abcd:HigherTaxon>
<abcd:HigherTaxonName>Conjugatophyceae</abcd:HigherTaxonName>
<abcd:HigherTaxonRank>classis</abcd:HigherTaxonRank>
</abcd:HigherTaxon>
</abcd:HigherTaxa>
<abcd:ScientificName>
<abcd:FullScientificNameString>Cosmarium cucurbita (Bréb.) Ralfs 1848</abcd:FullScientificNameString>
</abcd:ScientificName>
</abcd:TaxonIdentified>
</abcd:Result>
<abcd:PreferredFlag>false</abcd:PreferredFlag>
<abcd:Identifiers>
<abcd:Identifier>
<abcd:PersonName>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:PersonName>
</abcd:Identifier>
</abcd:Identifiers>
<abcd:References>
<abcd:Reference>
<abcd:TitleCitation>Ralfs, J: The British Desmidieae, London 1848</abcd:TitleCitation>
<abcd:CitationDetail>p. 22 + 226, 35 pl.</abcd:CitationDetail>
</abcd:Reference>
</abcd:References>
<abcd:Date>
<abcd:DateText>1883-07</abcd:DateText>
</abcd:Date>
<abcd:Notes>p. 108, tab. 17: 7a-e</abcd:Notes>
</abcd:Identification>
</abcd:Identifications>
<abcd:RecordBasis>PreservedSpecimen</abcd:RecordBasis>
<abcd:SpecimenUnit>
<abcd:Preparations>
<abcd:Preparation>
<abcd:PreparationType>preserved material</abcd:PreparationType>
</abcd:Preparation>
</abcd:Preparations>
</abcd:SpecimenUnit>
<abcd:MultiMediaObjects>
<abcd:MultiMediaObject>
<abcd:FileURI>http://ww2.bgbm.org/herbarium/Externe_Bildsammlungen/AlgenEngels/L-Scans-B-Konv/6897-6899.jpg</abcd:FileURI>
</abcd:MultiMediaObject>
</abcd:MultiMediaObjects>
<abcd:Gathering>
<abcd:DateTime><abcd:DateText>1883</abcd:DateText>
</abcd:DateTime>
<abcd:Agents>
<abcd:GatheringAgent>
<abcd:Person>
<abcd:FullName>Bulnheim, O.</abcd:FullName>
</abcd:Person>
</abcd:GatheringAgent>
</abcd:Agents>
<abcd:LocalityText language="DE">Leipzig</abcd:LocalityText>
<abcd:Country>
<abcd:ISO3166Code>DE</abcd:ISO3166Code>
</abcd:Country>
<abcd:NamedAreas>
<abcd:NamedArea>
<abcd:AreaName>Sachsen</abcd:AreaName>
</abcd:NamedArea>
<abcd:NamedArea>
<abcd:AreaName>Leipzig</abcd:AreaName>
</abcd:NamedArea>
</abcd:NamedAreas>
<abcd:AreaDetail language="DE">see label</abcd:AreaDetail>
<abcd:Notes language="EN">Europe</abcd:Notes>
</abcd:Gathering>
<abcd:Notes>Barcode: B 4000 08358; Specimen Location: B. sample contains: Cosmarium cucurbita, Euastrum didelta, Closterium intermedium</abcd:Notes>
</abcd:Unit>
</abcd:Units>
</abcd:DataSet>
</abcd:DataSets>
</biocase:content>
<biocase:diagnostics>
<biocase:diagnostic severity="INFO">Datasource wrapper AlgenEngels requested</biocase:diagnostic>
<biocase:diagnostic severity="INFO">Reading PSF from C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml</biocase:diagnostic>
<biocase:diagnostic severity="DEBUG">PSF: PSF=C:\Workspace\bps2\config\datasources\AlgenEngels\provider_setup_file.xml, recLimit=0, loglevel=40, user=WebUser, database=AlgenEngels, dbIP=, dbms=odbc_tsql, encoding=latin_1, schemas={u'http://www.tdwg.org/schemas/abcd/2.06': <biocase.wrapper.psf_handler.SupportedSchema instance at 0x00EB1E90>}, tablegraph=GRAPH: graph: meta, determination-taxonNames, higherTaxon-taxonNames, images-specimen, namedAreas-collectingEvent, siteFeatures-collectingEvent, specimen-determination, specimen-collectingEvent, unitReference-specimen, +++ ALIAS2TABLE: {u'collectingEvent': u'abcd_CollectingEvent', u'taxonNames': u'abcd_TaxonName', u'higherTaxon': u'abcd_HigherTaxa', u'specimen': u'abcd_Object', u'siteFeatures': u'abcd_SiteFeatureTerms', u'meta': u'metadata', u'determination': u'abcd_Determination', u'images': u'abcd_Images', u'unitReference': u'abcd_UnitReference', u'namedAreas': u'abcd_NamedAreaNames'}</biocase:diagnostic>
</biocase:diagnostics>
</biocase:response>
</syntaxhighlight>
9e0f1446edbff6afe62954f75c3493f4798b7902
Installation
0
6
925
806
2018-04-12T09:11:47Z
JoergHoletschek
3
/* Installing Apache/IIS and Python */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements:
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
fb3d51db23f46968b6034a61a57259fab0fe9b2e
932
925
2018-05-25T13:13:48Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you're famliar, we'd suggest to use the Docker path for installing BioCASe (read more in section three below). If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide].
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
708cebe0de4c3fd70d60607b56e4a4347c0c6001
933
932
2018-05-25T13:22:35Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you're famliar, we'd suggest to use the Docker path for installing BioCASe (read more in section three below). If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section three).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
== Installing Apache/IIS and Python ==
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
== Downloading the Provider Software ==
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
=== Downloading the Archive File ===
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
=== Downloading from the Subversion Repository ===
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
== Running the Setup Script ==
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
== Linking BioCASe and Your Web Server ==
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
=== Apache ===
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
=== Internet Information Server ===
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
=== Testing the Link ===
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
== Installing Additional Python Packages/Java ==
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
== Changing the Default Password ==
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
== Checking Your Installation ==
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
3973af83b0de5f339d5d479f839d6b116d68a8dd
934
933
2018-05-25T13:25:36Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you're famliar, we'd suggest to use the Docker path for installing BioCASe (read more in section three below). If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section three).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
cbbcbb2639eedc7b7d3d052eed249a33c4d87fd6
935
934
2018-05-25T13:28:25Z
JoergHoletschek
3
/* Requirements and Considerations */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you're famliar, we'd suggest to use the Docker path for installing BioCASe (read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below). If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section three).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
d8f0e82f8dfafae75bea2d043743e20608ccda47
936
935
2018-05-25T13:30:01Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you're famliar, we'd suggest to use the Docker path for installing BioCASe (read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below). If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
== Updating an existing BioCASe Installation ==
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
=== Updating from version 2.5 or later ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating from older versions < 2.5 ===
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
815387baa31f757258487dc9d88470880fe3c12a
937
936
2018-05-25T13:32:19Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you're famliar, we'd suggest to use the Docker path for installing BioCASe (read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below). If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installtion ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
8abb7e4529d27ea62466bd738ac4c537cfa3b50e
938
937
2018-05-25T13:34:55Z
JoergHoletschek
3
/* Requirements and Considerations */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installtion ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
e9128c7b38aab4cc89ddace5c6f972c378914183
939
938
2018-05-25T13:35:22Z
JoergHoletschek
3
/* Updating a regular BioCASe installtion */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
b842ff8770bffb3c150626fd17eb7fbd1af7c852
940
939
2018-05-25T13:44:32Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
e4b18efc2b1e0412e5b27cd044268f8cfb5a9f72
941
940
2018-05-25T13:57:34Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
7660e8c07a2f8f3cb61e5d8b39ec2a9ff5bf52e7
942
941
2018-05-25T14:03:16Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the Makefile that contains the commands for installing and updating BioCASe. Save it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
640562737a9e9dd0fcfb1de6c3e8a37a425174c7
943
942
2018-05-25T14:10:01Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the Makefile that contains the commands for installing and updating BioCASe. Save it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it:
<Bild>
Per default, BioCASe will use port 80. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8080, for example, type in ''make install PORT=8080'' instead.
Voilà, that's it! To check your BioCASe installation, go to http://localhost/biocase.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
ffe9adfeb5890a9e3658bd80fd20c08cfdf41559
944
943
2018-05-25T14:13:06Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Save it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it:
<Bild>
Per default, BioCASe will use port 80. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8080, for example, type in ''make install PORT=8080'' instead.
Voilà, that's it! To check your BioCASe installation, go to http://localhost/biocase.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
a94a5e7c7a5609b88e7a3e4ec48d552915619ced
945
944
2018-05-25T14:14:00Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it:
<Bild>
Per default, BioCASe will use port 80. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8080, for example, type in ''make install PORT=8080'' instead.
Voilà, that's it! To check your BioCASe installation, go to http://localhost/biocase.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
480f3a739492980a12c8f3161f7c36843ef550cb
946
945
2018-05-25T14:15:31Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it:
<Bild>
Per default, BioCASe will use port 80. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8080, for example, type in ''make install PORT=8080'' instead.
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
e8b50b002cd74c52f46cfc0ae90ad703e1fa8c07
947
946
2018-05-25T14:16:53Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it:
<Bild>
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8080, for example, type in ''make install PORT=8080'' instead.
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
111fe4c605be664be5ec306f7d236d7a490641ae
948
947
2018-05-25T14:19:45Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.:
<Bild>
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8080, for example, type in ''make install PORT=8080'' instead.
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
363168c045f27ac0b70709c471e0b26d85527899
949
948
2018-05-25T14:48:55Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead.
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
6eafd890625dc8bd6c1c0f2711fce30f7454d196
950
949
2018-05-25T14:49:32Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
d16d5239441924ef96dc98b0bb34de0da129da52
952
950
2018-05-25T14:52:20Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
decaf05ddcd038f132a0d64ec4cf9137b9328939
953
952
2018-05-25T14:54:41Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Dockerfile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
2d7e3edfd42e9f608654866faa8e4c85297939c5
954
953
2018-05-25T14:55:36Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
2d8d71c50fd9c2ccb1c177a4abc1da170be83cd0
955
954
2018-05-25T15:06:35Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
37f69e80d578384a6d9b80350815711ba446873a
956
955
2018-05-25T15:09:53Z
JoergHoletschek
3
/* Updating a BioCASe Docker installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
This is very simple with the Mss you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
efa530c646db60d4a50f922d9786e239e8856e5e
957
956
2018-05-25T15:10:24Z
JoergHoletschek
3
/* Updating a BioCASe Docker installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''.
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
f27d3906bfc5b555773fcb24b3b70721c90a1436
958
957
2018-05-25T15:13:31Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[http://wiki.bgbm.org/bps/index.php/Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
8a074f4edf76a591a89108a69b6a757505ad9d29
959
958
2018-05-25T15:17:36Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the installed components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
5cf8186f7687f00bec46f63002aed115998dda9b
960
959
2018-05-28T08:47:02Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
431712c82ce4f832355b02b2bc391219091ba24c
961
960
2018-05-28T08:50:27Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation (see section below), you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Updating an existing BioCASe Installation ==
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
43e3f5624f6f1372acffd0b1623a10522dd37e49
964
961
2018-05-28T09:06:22Z
JoergHoletschek
3
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|600px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
405355fe64c57f14d10caae114d5c265c97b8e47
965
964
2018-05-28T09:37:31Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be store in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
249404fc5d0df05f07847d9b043e5ff1558a4f30
966
965
2018-05-28T09:38:27Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an exisiting installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
f41fdac2039ca8ab68499ac27941df1168dbdeaa
File:DockerInstall.png
6
114
951
2018-05-25T14:50:09Z
JoergHoletschek
3
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
BeginnersGuide
0
49
962
871
2018-05-28T08:56:43Z
JoergHoletschek
3
/* Requirements for Using the BPS */
wikitext
text/x-wiki
[[http://wiki.bgbm.org/bps/index.php/BeginnersGuide_de Diese Seite auf Deutsch]]
== What is the BioCASe Provider Software? ==
The BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests. The Provider Software is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema.
The Provider Software is a suite of tools that need to be installed on the data provider’s web server. The core component is the PyWrapper, an XML/CGI database interface written in Python that allows a standardized access to a variety of database management systems and arbitrarily structured databases. Grouped around this are a number of tools for configuring, testing and debugging a BioCASe installation or web service.
Even though BioCASe can be used for any conceptual XML data schema, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the [http://www.biocase.org BioCASe network] and the [http://www.gbif.org Global Biodiversity Information Facility].
== Requirements for Using the BPS ==
Before using the BioCASe Provider Software, four requirements need to be checked:
* For one thing, the data to be published needs to be stored in an SQL compliant relational database management system (DBMS), with the data model being well documented or at least knowledge about the data model existing on someone’s head. Non-SQL DBMS are not supported. Currently, the BioCASe Provider Software can connect to the following databases: Microsoft Access, Microsoft SQL Server, MySQL, Postgres, Oracle, Foxpro, Sybase, 4D, DB2, Firebird.
* For installing BioCASe, you need to have a web server (Apache or Microsoft IIS) that is permanently connected to the Internet. This can be an institutional server or a hosting service (even though it’s usually a pain to get privileges to install software for the latter). Dial-up connections won’t work.
* For the web server in question, you must have the possibility to install Python (if it is not installed yet) and Python packages. Even though this can be done by the IT staff, you should make sure that there are no institutional policies colliding. If you want to create DarwinCore Archives, a Java Runtime Environment is required.
* A direct connection can be established from the web server that will run the BPS to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL, 1433 for SQL Server).
BioCASe can now be deployed as a Docker container, which makes it very to install, update and remove BioCASe. (Docker is an operating-system-level virtualization software that allows easy software deployment; if you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide].)
== Steps ==
Once you’ve made sure the BioCASe Provider Software is the right choice for you ([[Special:Contact|contact the BioCASe team]] if you feel unsafe with your decision), you need to do the following steps:
# Think about which information you want to publish to the network. This involves settling the question of ownership of the data and the terms of use, license and usage restrictions for the published data. Also you should consider which information should '''not''' be published because they might affect endangered species (options are to block certain occurrences from publication or to blur the exact locality information).
# Prepare the database for publication as described in the [[Preparation]] tutorial. This includes the decision on whether to publish the live database or a snapshot, the creation of a table for metadata and, in certain cases, some data transformation.
# Follow the [[Installation]] Tutorial to install the BioCASe Provider Software.
# Set up a BioCASe Datasource and connect it to your database, then configure the database structure as described in the [[DatasourceSetup]] tutorial.
# Follow the [[ABCD2Mapping]] tutorial to create a mapping for the schema you want to use.
# Test and debug your BioCASe web service. Read the [[Debugging]] tutorial to learn how to do this.
# Once you’re done with setting up and configuring the BioCASe Provider Software, you can register the BioCASe web service with the information network you want to publish your data to, for example with [http://www.gbif.org GBIF]. We strongly recommend to [[Special:Contact|contact the BioCASe team]] for checking your web service first as we might be able to foresee problems that are more difficult to resolve after registration.
== Support ==
In case you run into difficulties during the installation and setup, you should
* have a look at the [[FAQ]] which might list the solution for your question,
* ask other BioCASe data providers for help,
* get in contact with the [[Special:Contact|BioCASe team]]. Please describe exactly your environment (operating system, DBMS used), the steps that cause the problem and any error messages and hints you get. Screenshot are a big plus here.
a814b7bf2e1d86609d06618d868e77e52fff8c16
BeginnersGuide de
0
110
963
828
2018-05-28T09:00:26Z
JoergHoletschek
3
/* Voraussetzungen für den Einsatz der BioCASe Provider Software */
wikitext
text/x-wiki
[[http://wiki.bgbm.org/bps/index.php/BeginnersGuide This page in English]]
==Was ist die BioCASe Provider Software?==
Die BioCASe Provider Software ist eine Middleware, also eine Software, die den Datenaustausch zwischen zwei voneinander entfernten Systemen erlaubt. Sie ermöglicht, Daten aus einem relationalen Datenbanksystem (z.B. einem Sammlungsverwaltungssystem) in ein Datennetzwerk einzuspeisen. Nach der Installation und Konfiguration von BioCASe sind die Daten als BioCASe Webservice im Internet verfügbar und können mittels BioCASe-Protokollanfragen abgerufen werden. Die Provider Software ist nicht abhängig von einem bestimmten Datenstandard und lässt sich mit einem beliebigen Datenschema verwenden.
Die Provider Software muss auf einem Webserver des Datenlieferanten installiert werden. Kern ist der sogenannte PyWrapper, eine in Python entwickelte XML/CGI-Datenschnittstelle, die einen standardisierten Zugriff auf eine Vielzahl von Datenbankmanagementsystemen mit beliebigen Datenmodellen ermöglicht. Um diese Schnittstelle herum existieren verschiedene Tools, die die Einrichtung, Konfiguration und den Test der BioCASe-Installation und –Webservices vereinfachen.
Obwohl BioCASe prinzipiell mit jedem XML-Datenschema verwendet werden kann, ist das Haupteinsatzfeld die Anbindung von biologischen Beleg- und Beobachtungsdaten an Primärdatennetzwerke zur Artenvielfalt wie dem [http://www.biocase.org BioCASe Netzwerk] und der [http://www.gbif.org Global Biodiversity Information Facility].
==Voraussetzungen für den Einsatz der BioCASe Provider Software==
Vor dem Einsatz der Provider Software sollte ein potentieller Datenlieferant drei Voraussetzungen prüfen:
* Die zu veröffentlichenden Sammlungs- oder Beobachtungsdaten müssen in einem SQL-fähigen relationalen Datenbankmanagementsystem vorhanden sein oder in einem Format, zu dem ein Zugang über ODBC (Open Database Connectivity) möglich ist, wie z.B. Microsoft Excel. Nicht-relationale Datenbankmanagementsysteme werden nicht unterstützt. Derzeit kann sich die Provider Software mit den folgenden Datenbanksystemen verbinden: Microsoft Access, Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Foxpro, Sybase, 4D, DB2, Firebird, Microsoft Excel.
* Zur Installation der Provider Software muss ein dauerhaft mit dem Internet verbundener Webserver vorhanden sein (Apache oder Microsoft IIS). Dies kann ein Server des Datenproviders oder eines kommerziellen Hosting-Dienstes sein. Eine Veröffentlichung über eine Dial-up-Verbindung ist nicht möglich.
* Auf diesem Webserver muss die Installation von Python (insofern es noch nicht installiert ist, was z.B. bei vielen gängigen Linux-Installationen der Fall ist) sowie zusätzlicher Python-Pakete möglich sein. Dies ist für Mitarbeiter der IT üblicherweise keine Hürde, solange dem keine institutionellen Richtlinien entgegenstehen. Für die optionale Erzeugung von DarwinCore-Archiven ist zusätzlich eine Java Runtime Environment nötig.
BioCASe kann auch als Docker Container installiert werden, was Installation, Update und Entfernen der Provider Software sehr erleichtert. Docker ist eine Containervirtualisierungssoftware; mehr dazu im [https://docs.docker.com/get-started/ Get Started Guide].
==Vorgehensweise==
Sollte die Wahl auf die BioCASe Provider Software fallen (bei der Entscheidungsfindung hilft das [[Special:Contact|BioCASe Team]] gerne weiter), umfasst eine Anbindung von Daten üblicherweise die folgenden Schritte:
# Entscheiden, welche Daten an das Netzwerk angebunden werden sollen. Dazu gehören die Klärung der Frage, wem die Daten eigentlich gehören, sowie die Festlegung der Nutzungsbedingungen/-beschränkungen und einer Lizenz. Darüber hinaus sollte geprüft werden, welche Daten '''nicht''' veröffentlicht werden sollen, weil sie gefährdete Arten betreffen. In diesem Fall können bestimmte Datensätze komplett von der Veröffentlichung ausgeschlossen werden oder bestimmte Teile davon – z.B. die Koordinaten des Fundortes – gezielt verunschärft werden.
# Vorbereitung der Datenbank auf die Veröffentlichung. Dabei müssen die Entscheidung getroffen werden, ob die Live-Datenbank oder ein regelmäßig erzeugter Snapshot angebunden werden soll, und die Tabelle für die Metadaten angelegt und befüllt werden. In einigen Fällen sind weitere Datentransformationen nötig, siehe [[Preparation|Tutorial]].
# Installation der Provider Software, siehe [[Installation|Tutorial]].
# Anlegen einer BioCASe Datenquelle, Verbinden mit der Datenbank und Definition der Datenbankstruktur, siehe [[DatasourceSetup|Tutorial]].
# Anlegen eines [[ABCD2Mapping|ABCD2 Mappings]].
# Testen und Debuggen des BioCASe Webservices, siehe [[Debugging|Tutorial]].
# Nach Abschluss der Konfiguration kann der neue BioCASe-Webservice im Wunsch-Datennetzwerk angemeldet werden, z.B. bei [http://www.gbif.org GBIF]. Wir empfehlen jedoch, davor kurz das [[Special:Contact|BioCASe-Team zu kontaktieren]], das einen Blick auf den neuen Webservice werfen und auf Richtigkeit prüfen kann. Falsche Mappings lassen sich umso leichter korrigieren, je früher sie entdeckt werden.
==Support==
Bei Problemen während Installation und Konfiguration empfehlen wir
* In den [[FAQ]] nachzuschlagen, ob das Problem und eine Lösung dort beschrieben sind,
* Befreundete Nutzer der BioCASe Provider Software um Rat zu fragen, oder
* Kontakt mit dem [[Special:Contact|BioCASe Team]] aufzunehmen. Bitte dabei genau das verwendete System (verwendetes BioCASe-Version sowie Betriebs/Datenbankmanagementsystem), Fehlermeldungen und die Schritte, die dazu führten, beschreiben. Screenshots sind dabei immer von Vorteil.
2badc0d1acc9f28081c40bdf99f962a5a9d9be0e
Installation
0
6
971
966
2018-06-13T08:20:25Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 2.5+ to run, it doesn't work with Python 3. On most Linux systems, Python 2.7 will be pre-installed, and this works fine with BioCASe. By the way: You can install several different Python versions on the same machine without any conflicts.
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
bbb5859498a9de501b087afb0d6de2ebae75c70d
VersionHistory
0
23
972
970
2018-06-13T08:23:50Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully dunctional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
be55a57b6cb0d4b8e011f6f57138dab38fbbd9a4
973
972
2018-06-13T08:25:00Z
JoergHoletschek
3
/* Version 3.7 [2018-06-12] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
4588a987c9b9e6cd644d209e92e1ae0d2c9f25fb
974
973
2018-07-12T11:23:24Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving allows now to set a BioCASe filter in order to archive just a subset of the records published by a data source.
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ab10220d9dda3f3aca0df2ca5fdbce2280ce0f4c
975
974
2018-07-27T11:37:52Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
667063eebcfae3babe50a9ffa6f7a56038412627
976
975
2018-08-16T08:54:38Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* Bugfix: Use https for Google Maps API to keep it working for installations using https.
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a9e46fa5640570a0963193177c6357bc78cfcb22
978
976
2018-08-22T09:54:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* Bugfix: Use https for Google Maps API to keep it working for installations using https.
* Bugfix for AnnoSys retrieval (used to cause SSL errors on certain installation).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2ab9957c8530a0932683197f37e4777b069883ec
979
978
2018-08-22T11:08:29Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL errors on certain installation).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
23406b95d7741af2c831e4943b0fd4a5914a1eab
980
979
2018-08-23T09:32:06Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c3a0b8445834dcd09f3957f49e996032f19608f6
981
980
2018-08-23T10:56:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6a569a3a4e8885d50a8eb1e46be1496969f1f614
CommonABCD2Concepts
0
22
977
898
2018-08-16T09:24:59Z
JoergHoletschek
3
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a tabular list of ABCD concepts [http://terms.tdwg.org/wiki/ABCD_2_XPath_to_Short_Name_Mapping here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ ├─ Owners
│ │ └─ Owner
│ │ ├─ LogoURI
│ │ ├─ URIs
│ │ │ └─ URL
│ │ ├─ Person
│ │ │ └─ FullName
│ │ └─ Organisation
│ │ └─ Name
│ │ └─ Representation
│ │ └─ Text
│ └─ IPRStatements
│ └─ Licenses
│ └─ License
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
<!--
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
-->
cc6ecfc4757288a8c8e70771c7bf44193db9c505
983
977
2018-09-27T08:48:00Z
JoergHoletschek
3
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a tabular list of ABCD concepts [http://terms.tdwg.org/wiki/ABCD_2_XPath_to_Short_Name_Mapping here].
== Mandatory ==
List of mandatory concepts. Without them being mapped the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ ├─ Owners
│ │ └─ Owner
│ │ ├─ LogoURI
│ │ ├─ URIs
│ │ │ └─ URL
│ │ ├─ Person
│ │ │ └─ FullName
│ │ └─ Organisation
│ │ └─ Name
│ │ └─ Representation
│ │ └─ Text
│ └─ IPRStatements
│ └─ Licenses
│ └─ License
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
3be3785e1920cf72c1882ed25ac3fad94d14e0d3
ABCD2Concepts
0
115
982
2018-09-27T08:47:09Z
JoergHoletschek
3
Created page with "=Introduction= ABCD and DarwinCore both contain hundreds of elements. Some are mandatory. The curator of the DNA Bank has to define the Metadata of the DNA Bank collection fir..."
wikitext
text/x-wiki
=Introduction=
ABCD and DarwinCore both contain hundreds of elements. Some are mandatory. The curator of the DNA Bank has to define the Metadata of the DNA Bank collection first. After that the real mapping can begin. You can use [http://www.biocase.org BioCASe] or [http://www.gbif.org/ipt IPT] to provide data to GGBN, but have to make sure you use the extensions for the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard]. DarwinCore and ABCD have a lot of terms in common, but use different names for the terms. Therefore the following section are splitted into ABCD and DwC. GGBN supports both standards, both have pros and cons and work well for GGBN. It depends on your data and if your institution is already providing data to GBIF which one fits better. Please contact us if you need help.
<div id="wikinote">
'''Asterisk (*) means mandatory for GGBN, all others are recommended.
Separate mappings for voucher specimens (mapping 1) and tissue and DNA samples (mapping 2) are preferred. This enables third parties such as GBIF or GGBN to harvest only those data that are relevant.
All metadata information should be in English! Please map as many elements as possible, the better your data visible and searchable in GBIF and GGBN the better for other scientists and at the end for yourself!</div>
=Mapping principles=
You can provide your data to GGBN in different ways. It depends on your other collections and the way you provide your data already to GBIF which one fits best for you. GGBN can handle all of the examples below, but it might make a difference for your occurrences at GBIF. Most important is, that you provide the references between the records in a standardized way. DNA collections comprise many difference use cases. Not in all cases you will have a physicial tissue or a physicial specimen. Please contact us if you need help.
==Mapping with Specimens==
A specimen in terms of GGBN and GBIF is a preserved specimen from wild origin or a living specimen (cultivated plant, captivated animal, cell culture). In case your collection or certain DNA samples have no corresponding tissue sample, you should refer to the "mother" specimen directly.
<div id="wikinote">Specimens are often deposited in external collections. If you provide the proper identifiers the GGBN Data Portal can aggregate this information! We know that it is impossible to track this information back for all legacy data. But if you keep this in mind in your daily workflows for all new records and samples the quality and value of your data and collection will increase enormously.</div>
{| class="wikitable"
! Mapping all at once !! Mapping two sources !! Mapping three sources
|-
|[[File:GGBN mapping one source.png|Thumb|300px]] || [[File:GGBN mapping two sources.png|Thumb|300px]] || [[File:GGBN mapping three sources.png|Thumb|300px]]
|-
|'''Pros:''' - only one mapping needed
'''Cons:''' - double occurrences at GBIF, since GBIF can't handle associataions
||'''Pros:''' - Only underlying specimens records are provided, no double entries at GBIF
'''Cons:''' - two mappings needed (but can be easily copied)
||'''Pros:''' - Only underlying specimens records are provided, no double entries at GBIF
- Clear distinction between collections, some managers prefer this mapping type
'''Cons:''' - three mappings needed (but can be easily copied)
|}
==Mapping without Specimens==
Often tissue samples are collected without collecting/killing the whole organism. There are two ways to handle this.
{| class="wikitable"
! Mapping eVouchers !! Mapping tissues only
|-
|style="width: 50%;"|[[File:GGBN mapping evoucher.png|Thumb|300px]] ||[[File:GGBN mapping tissues only.png|Thumb|300px]]
|-
|In case you want to track an individual, sampled multiple times (e.g. vertebrates caught multiple times and marked individually, trees) you should add an Observation record as top level. This could also be accompanied by images, then called eVoucher.
||In case you don't want to track individuals, just provide your tissue records to GBIF as top level occurrence.
|}
==Environmental Samples==
Environmental Samples and even more environmental DNA can currently be provided to GGBN and GBIF in a very basic way only. We are working on a proposal how to map these important sample information in a way they deserve it. Have a look at our [[Use_Cases_Enviro | Environmental DNA use case]]
=ABCD=
==Metadata of your DNA and tissue bank==
Metadata are very important. They will be displayed with every single DNA record in the portal. Be careful with the IPR statements!
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|ContentContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|ContentContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|ContentContact
|*Name
|Person, person team responsible for curation of your DNA Bank
|Gabi Droege
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
=Darwin Core=
We recommend using [http://www.gbif.org/ipt/ IPT] for providing data as Darwin Core-Archive.
'''Mandatory for GGBN:''' Select '''occurrence''' as core and add '''GGBN Material Sample''' and '''Darwin Core Resource Relationship''' as extensions.
==Metadata of your DNA and tissue bank==
Please follow the example in the IPT documentation: https://github.com/gbif/ipt/wiki/IPT2ManualNotes.wiki#basic-metadata
'''Note:''' The description of your dataset should contain the following phrase: ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that CatalogNumber should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Occurrence
|*<span style="color:red">institutionCode</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Occurrence
|*<span style="color:red">collectionCode</span>
|short name/abbreviation of relevant institution
|NMNH
|-
|Occurrence
|*<span style="color:red">catalogNumber</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Occurrence
|occurrenceID
|sample record GUID
| http://n2t.net/ark:/65665/304ed89be-b1ed-4e71-b210-dbbddfadb776
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Occurrence Core
|*basisOfRecord
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|Material Sample Extension
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|Preparation Extension
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|Preparation Extension
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|Preparation Extension
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|Preparation Extension
|*preparationStaff
|extraction staff
|if unknown type "unknown"
|-
|Preservation Extension
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|Permit Extension
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|Permit Extension
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|Permit Extension
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|Permit Extension
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|Amplification Extension
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|Amplification Extension
|marker
|
|COX1
|-
|Amplification Extension
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|Amplification Extension
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|Loan Extension
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|Loan Extension
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|Material Sample Extension
|concentration
|concentration of the DNA
|65,34
|-
|Material Sample Extension
|@unit
|unit of the concentration
|µg/ml
|-
|Material Sample Extension
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|Material Sample Extension
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
Please use the Darwin Core Resource Relationship Class
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Resource Relationship
|*resourceRelationshipID
|concatenated string with the triple id used for GBIF plus the accesspoint of the IPT archive providing this record and the guid (the latter one is not mandatory, but recommended)
|e.g. catalogNumber=11718653&collectionCode=Botany&institutionCode=US&accesspoint=http://collections.mnh.si.edu/ipt/archive.do?r=nmnhdwca&guid=http://n2t.net/ark:/65665/303e7eecb-4e8d-4fce-a251-6c8fa3f2863d
|-
| Resource Relationship
|*relationshipOfResource
|the Relation between the DNA and the voucher or the tissue and the voucher
|e.g. " same individual", “same population”, “same ex situ individual”
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Occurrence Core
|*recordNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
| Occurrence Core
|*recordedBy
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
| Occurrence Core
|*minimumElevationInMeters
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
| Occurrence Core
|maximumElevationInMeters
|
|e.g. 200
|-
|Occurrence Core
|*countryCode
|ISO code of the country where the voucher was collected
|e.g. US
|-
| Occurrence Core
|*country
|english Name of the country
|e.g. United States of America
|-
| Occurrence Core
|*eventDate
|date when voucher was collected, if you have content you can also use ISO format
|e.g. 21. April 1951
|-
| Occurrence Core
|*locality
|
|e.g. 5km NO Berlin
|-
| Occurrence Core
|continent
|name of continent
|e.g. Europe
|-
| Occurrence Core
|*decimalLatitude
|
|e.g. -15,88876
|-
| Occurrence Core
|*decimalLongitude
|
|e.g. 72,88876
|}
===Scientific Name of the voucher===
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Occurrence Core
|*Family
|Please provide at least one higher taxon, usually family
|e.g. Asteraceae, Paridae
|-
|Occurrence Core
|*scientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Occurrence Core
|*specificEpithet
|
|e.g. factorovskyi
|-
|Occurrence Core
|*genus
|
|e.g. Aaronsohnia
|-
|Occurrence Core
|*infraspecificEpithet
|
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*taxonRank
|
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA/tissue mapping. If you have histological images you should map them here.
a2a7dd31ce1a677ee0c34a99982eda504ae0c3ec
984
982
2018-09-27T08:48:17Z
JoergHoletschek
3
wikitext
text/x-wiki
=Introduction=
ABCD and DarwinCore both contain hundreds of elements. Some are mandatory. The curator of the DNA Bank has to define the Metadata of the DNA Bank collection first. After that the real mapping can begin. You can use [http://www.biocase.org BioCASe] or [http://www.gbif.org/ipt IPT] to provide data to GGBN, but have to make sure you use the extensions for the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard]. DarwinCore and ABCD have a lot of terms in common, but use different names for the terms. Therefore the following section are splitted into ABCD and DwC. GGBN supports both standards, both have pros and cons and work well for GGBN. It depends on your data and if your institution is already providing data to GBIF which one fits better. Please contact us if you need help.
<div id="wikinote">
'''Asterisk (*) means mandatory for GGBN, all others are recommended.
Separate mappings for voucher specimens (mapping 1) and tissue and DNA samples (mapping 2) are preferred. This enables third parties such as GBIF or GGBN to harvest only those data that are relevant.
All metadata information should be in English! Please map as many elements as possible, the better your data visible and searchable in GBIF and GGBN the better for other scientists and at the end for yourself!</div>
=Mapping principles=
You can provide your data to GGBN in different ways. It depends on your other collections and the way you provide your data already to GBIF which one fits best for you. GGBN can handle all of the examples below, but it might make a difference for your occurrences at GBIF. Most important is, that you provide the references between the records in a standardized way. DNA collections comprise many difference use cases. Not in all cases you will have a physicial tissue or a physicial specimen. Please contact us if you need help.
==Mapping with Specimens==
A specimen in terms of GGBN and GBIF is a preserved specimen from wild origin or a living specimen (cultivated plant, captivated animal, cell culture). In case your collection or certain DNA samples have no corresponding tissue sample, you should refer to the "mother" specimen directly.
<div id="wikinote">Specimens are often deposited in external collections. If you provide the proper identifiers the GGBN Data Portal can aggregate this information! We know that it is impossible to track this information back for all legacy data. But if you keep this in mind in your daily workflows for all new records and samples the quality and value of your data and collection will increase enormously.</div>
{| class="wikitable"
! Mapping all at once !! Mapping two sources !! Mapping three sources
|-
|[[File:GGBN mapping one source.png|Thumb|300px]] || [[File:GGBN mapping two sources.png|Thumb|300px]] || [[File:GGBN mapping three sources.png|Thumb|300px]]
|-
|'''Pros:''' - only one mapping needed
'''Cons:''' - double occurrences at GBIF, since GBIF can't handle associataions
||'''Pros:''' - Only underlying specimens records are provided, no double entries at GBIF
'''Cons:''' - two mappings needed (but can be easily copied)
||'''Pros:''' - Only underlying specimens records are provided, no double entries at GBIF
- Clear distinction between collections, some managers prefer this mapping type
'''Cons:''' - three mappings needed (but can be easily copied)
|}
==Mapping without Specimens==
Often tissue samples are collected without collecting/killing the whole organism. There are two ways to handle this.
{| class="wikitable"
! Mapping eVouchers !! Mapping tissues only
|-
|style="width: 50%;"|[[File:GGBN mapping evoucher.png|Thumb|300px]] ||[[File:GGBN mapping tissues only.png|Thumb|300px]]
|-
|In case you want to track an individual, sampled multiple times (e.g. vertebrates caught multiple times and marked individually, trees) you should add an Observation record as top level. This could also be accompanied by images, then called eVoucher.
||In case you don't want to track individuals, just provide your tissue records to GBIF as top level occurrence.
|}
==Environmental Samples==
Environmental Samples and even more environmental DNA can currently be provided to GGBN and GBIF in a very basic way only. We are working on a proposal how to map these important sample information in a way they deserve it. Have a look at our [[Use_Cases_Enviro | Environmental DNA use case]]
=ABCD=
==Metadata of your DNA and tissue bank==
Metadata are very important. They will be displayed with every single DNA record in the portal. Be careful with the IPR statements!
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|ContentContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|ContentContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|ContentContact
|*Name
|Person, person team responsible for curation of your DNA Bank
|Gabi Droege
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
=Darwin Core=
We recommend using [http://www.gbif.org/ipt/ IPT] for providing data as Darwin Core-Archive.
'''Mandatory for GGBN:''' Select '''occurrence''' as core and add '''GGBN Material Sample''' and '''Darwin Core Resource Relationship''' as extensions.
==Metadata of your DNA and tissue bank==
Please follow the example in the IPT documentation: https://github.com/gbif/ipt/wiki/IPT2ManualNotes.wiki#basic-metadata
'''Note:''' The description of your dataset should contain the following phrase: ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that CatalogNumber should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Occurrence
|*<span style="color:red">institutionCode</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Occurrence
|*<span style="color:red">collectionCode</span>
|short name/abbreviation of relevant institution
|NMNH
|-
|Occurrence
|*<span style="color:red">catalogNumber</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Occurrence
|occurrenceID
|sample record GUID
| http://n2t.net/ark:/65665/304ed89be-b1ed-4e71-b210-dbbddfadb776
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Occurrence Core
|*basisOfRecord
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|Material Sample Extension
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|Preparation Extension
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|Preparation Extension
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|Preparation Extension
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|Preparation Extension
|*preparationStaff
|extraction staff
|if unknown type "unknown"
|-
|Preservation Extension
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|Permit Extension
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|Permit Extension
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|Permit Extension
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|Permit Extension
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|Amplification Extension
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|Amplification Extension
|marker
|
|COX1
|-
|Amplification Extension
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|Amplification Extension
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|Loan Extension
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|Loan Extension
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|Material Sample Extension
|concentration
|concentration of the DNA
|65,34
|-
|Material Sample Extension
|@unit
|unit of the concentration
|µg/ml
|-
|Material Sample Extension
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|Material Sample Extension
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
Please use the Darwin Core Resource Relationship Class
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Resource Relationship
|*resourceRelationshipID
|concatenated string with the triple id used for GBIF plus the accesspoint of the IPT archive providing this record and the guid (the latter one is not mandatory, but recommended)
|e.g. catalogNumber=11718653&collectionCode=Botany&institutionCode=US&accesspoint=http://collections.mnh.si.edu/ipt/archive.do?r=nmnhdwca&guid=http://n2t.net/ark:/65665/303e7eecb-4e8d-4fce-a251-6c8fa3f2863d
|-
| Resource Relationship
|*relationshipOfResource
|the Relation between the DNA and the voucher or the tissue and the voucher
|e.g. " same individual", “same population”, “same ex situ individual”
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Occurrence Core
|*recordNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
| Occurrence Core
|*recordedBy
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
| Occurrence Core
|*minimumElevationInMeters
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
| Occurrence Core
|maximumElevationInMeters
|
|e.g. 200
|-
|Occurrence Core
|*countryCode
|ISO code of the country where the voucher was collected
|e.g. US
|-
| Occurrence Core
|*country
|english Name of the country
|e.g. United States of America
|-
| Occurrence Core
|*eventDate
|date when voucher was collected, if you have content you can also use ISO format
|e.g. 21. April 1951
|-
| Occurrence Core
|*locality
|
|e.g. 5km NO Berlin
|-
| Occurrence Core
|continent
|name of continent
|e.g. Europe
|-
| Occurrence Core
|*decimalLatitude
|
|e.g. -15,88876
|-
| Occurrence Core
|*decimalLongitude
|
|e.g. 72,88876
|}
===Scientific Name of the voucher===
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Occurrence Core
|*Family
|Please provide at least one higher taxon, usually family
|e.g. Asteraceae, Paridae
|-
|Occurrence Core
|*scientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Occurrence Core
|*specificEpithet
|
|e.g. factorovskyi
|-
|Occurrence Core
|*genus
|
|e.g. Aaronsohnia
|-
|Occurrence Core
|*infraspecificEpithet
|
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*taxonRank
|
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA/tissue mapping. If you have histological images you should map them here.
<!--
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
-->
ea40c43b02d9737a4fc33cd200743b443777c137
985
984
2018-09-27T08:50:41Z
JoergHoletschek
3
wikitext
text/x-wiki
=Introduction=
ABCD and DarwinCore both contain hundreds of elements. Some are mandatory. The curator of the DNA Bank has to define the Metadata of the DNA Bank collection first. After that the real mapping can begin. You can use [http://www.biocase.org BioCASe] or [http://www.gbif.org/ipt IPT] to provide data to GGBN, but have to make sure you use the extensions for the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard]. DarwinCore and ABCD have a lot of terms in common, but use different names for the terms. Therefore the following section are splitted into ABCD and DwC. GGBN supports both standards, both have pros and cons and work well for GGBN. It depends on your data and if your institution is already providing data to GBIF which one fits better. Please contact us if you need help.
<div id="wikinote">
'''Asterisk (*) means mandatory for GGBN, all others are recommended.
Separate mappings for voucher specimens (mapping 1) and tissue and DNA samples (mapping 2) are preferred. This enables third parties such as GBIF or GGBN to harvest only those data that are relevant.
All metadata information should be in English! Please map as many elements as possible, the better your data visible and searchable in GBIF and GGBN the better for other scientists and at the end for yourself!</div>
=Mapping principles=
You can provide your data to GGBN in different ways. It depends on your other collections and the way you provide your data already to GBIF which one fits best for you. GGBN can handle all of the examples below, but it might make a difference for your occurrences at GBIF. Most important is, that you provide the references between the records in a standardized way. DNA collections comprise many difference use cases. Not in all cases you will have a physicial tissue or a physicial specimen. Please contact us if you need help.
==Mapping with Specimens==
A specimen in terms of GGBN and GBIF is a preserved specimen from wild origin or a living specimen (cultivated plant, captivated animal, cell culture). In case your collection or certain DNA samples have no corresponding tissue sample, you should refer to the "mother" specimen directly.
<div id="wikinote">Specimens are often deposited in external collections. If you provide the proper identifiers the GGBN Data Portal can aggregate this information! We know that it is impossible to track this information back for all legacy data. But if you keep this in mind in your daily workflows for all new records and samples the quality and value of your data and collection will increase enormously.</div>
{| class="wikitable"
! Mapping all at once !! Mapping two sources !! Mapping three sources
|-
|[[File:GGBN mapping one source.png|Thumb|300px]] || [[File:GGBN mapping two sources.png|Thumb|300px]] || [[File:GGBN mapping three sources.png|Thumb|300px]]
|-
|'''Pros:''' - only one mapping needed
'''Cons:''' - double occurrences at GBIF, since GBIF can't handle associataions
||'''Pros:''' - Only underlying specimens records are provided, no double entries at GBIF
'''Cons:''' - two mappings needed (but can be easily copied)
||'''Pros:''' - Only underlying specimens records are provided, no double entries at GBIF
- Clear distinction between collections, some managers prefer this mapping type
'''Cons:''' - three mappings needed (but can be easily copied)
|}
==Mapping without Specimens==
Often tissue samples are collected without collecting/killing the whole organism. There are two ways to handle this.
{| class="wikitable"
! Mapping eVouchers !! Mapping tissues only
|-
|style="width: 50%;"|[[File:GGBN mapping evoucher.png|Thumb|300px]] ||[[File:GGBN mapping tissues only.png|Thumb|300px]]
|-
|In case you want to track an individual, sampled multiple times (e.g. vertebrates caught multiple times and marked individually, trees) you should add an Observation record as top level. This could also be accompanied by images, then called eVoucher.
||In case you don't want to track individuals, just provide your tissue records to GBIF as top level occurrence.
|}
==Environmental Samples==
Environmental Samples and even more environmental DNA can currently be provided to GGBN and GBIF in a very basic way only. We are working on a proposal how to map these important sample information in a way they deserve it. Have a look at our [[Use_Cases_Enviro | Environmental DNA use case]]
=ABCD=
==Metadata of your DNA and tissue bank==
Metadata are very important. They will be displayed with every single DNA record in the portal. Be careful with the IPR statements!
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|ContentContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|ContentContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|ContentContact
|*Name
|Person, person team responsible for curation of your DNA Bank
|Gabi Droege
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
<!--
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
-->
2af53affede0d4d951e230759269690684f7be65
986
985
2018-09-27T08:54:04Z
JoergHoletschek
3
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
==Metadata==
Metadata are very important. They will be displayed with every single DNA record in the portal. Be careful with the IPR statements!
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|ContentContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|ContentContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|ContentContact
|*Name
|Person, person team responsible for curation of your DNA Bank
|Gabi Droege
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
<!--
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
-->
aed0a9d632cae6d2be94a9af4237e6a5f3ac9898
987
986
2018-09-27T09:11:52Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|ContentContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|ContentContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|ContentContact
|*Name
|Person, person team responsible for curation of your DNA Bank
|Gabi Droege
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
<!--
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
-->
3f59756b4f00f2e1ea829a763bf3ae891d10640f
988
987
2018-09-27T09:13:44Z
JoergHoletschek
3
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|ContentContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|ContentContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|ContentContact
|*Name
|Person, person team responsible for curation of your DNA Bank
|Gabi Droege
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
<!--
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
-->
beb98bdd7a3293d3a71a11b275e11e12d6c96823
989
988
2018-09-27T09:19:50Z
JoergHoletschek
3
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|rowspan="4" | ContentContact
|Name *
|Person, person team responsible for curation of your DNA Bank
|Gabi Droege
|-
|Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|Phone
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
454b697c43d823e23a9d486039e54bc1e54fbea9
990
989
2018-09-27T09:34:03Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|rowspan="4" | ContentContact
|Name*
|rowspan="4" | Contact information for the curator of the dataset.
|John Doe
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="4" | TechnicalContact
|Name*
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|John Doe
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="2" | RevisionData
|DateCreated
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|2018-07-19
|-
|DateModified*
|2018-09-27
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|RevisionData
|*DateModified
|date of last modification of your data
|
|-
|TechnicalContact
|*Address
|Complete Address of the responsible person
|Botanic Garden and Botanical Museum Berlin-Dahlem, Freie Universität Berlin, Koenigin-Luise-Str. 6-8, 14195 Berlin, Germany
|-
|TechnicalContact
|*Email
|valid email address; will be used by the web portal for sending you annotations etc.
|please use @ instead of masquerades like "[at]"
|-
|TechnicalContact
|*Name
|Person, person team responsible for technical issues of your database
|Gabriele Droege
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
6cbed1f383ba8547b4d102f4e3eeb41b05546d16
991
990
2018-09-27T09:38:16Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|rowspan="4" | ContentContact
|Name*
|rowspan="4" | Contact information for the curator of the dataset.
|John Doe
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="4" | TechnicalContact
|Name*
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|John Doe
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="2" | RevisionData
|DateCreated
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|2018-07-19
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Version
|DateIssued
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|2018-09-27
|-
|Major*
|3
|-
|Minor
|1
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
ed8124c88fd7f1fbd25a1014b8bde2061a0e82ea
992
991
2018-09-27T09:42:17Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="2" | RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|Description/Representation
|*Details
|Short text to describe the focus and number of samples in your DNA collection. '''It should include the following phrase:''' ''The DNA bank is part of the Global Genome Biodiversity Network (GGBN) which was founded in 2011. The network provides a technically optimized DNA collection service facility for all biological research accessible via one central web portal. The network promotes deposition of well documented reference DNA samples after project completion or data publication from scientists of other universities and institutions.''
|The DNA bank of the Botanic Garden and Botanical Museum Berlin-Dahlem holds currently a collection of 20000 plant DNA and tissue samples growing constantly. Its core collection focuses on the flora of Germany but it comprises botanical samples collected worldwide.
|-
|Description/Representation
|*@language
|language of description
|should be "en" as literal
|-
|Description/Representation
|*Title
|Short title that describes your DNA collection
|DNA Bank of the Herbarium Berolinense
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
e91df880126612b6c103efb72c6c9c66acf79680
993
992
2018-09-27T09:54:00Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="2" | RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
91b411cb3002d5b90a96be220b87217d1849da48
994
993
2018-09-27T09:56:50Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="2" | RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
514d8657918848a059aa3460a56e4ce4fc391194
995
994
2018-09-27T10:00:14Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|john.doe@acme.com
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
be340722c9c4fae5c7cf52d31fc6f83f5c097be6
996
995
2018-09-27T10:30:17Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|+49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
|+49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="4" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="4" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
|+49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
16b6a2eee81e35c2d4bf8ef32ad4cfd396e1b6d4
997
996
2018-09-27T10:39:38Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="4" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="4" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
8a05252bf73106e24e08ccb6f37f0db660e55762
998
997
2018-09-27T10:41:32Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="5" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="5" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
330dc5dbb5750d5a593308fb9d279836ae9dcb7f
999
998
2018-09-27T10:44:10Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="5" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="5" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|}
=== IPR Statements ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
978299edb4fcd6c9a3948c892d752e2033e4294f
1000
999
2018-09-27T10:50:17Z
JoergHoletschek
3
/* General metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|-}
=== IPR Statements ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
042d000e3533774bc410766a36cc9975a03b724c
1001
1000
2018-09-27T10:50:53Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
03b7c416b002f9f6ed9aa6df45da61cc84f25674
1002
1001
2018-09-27T10:56:42Z
JoergHoletschek
3
/* General metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|IPRStatements/Citation
|*Text
|
|Droege, G. (Ed.) 2008 - (continuously updated): DNA samples of the DNA bank at the BGBM (Botanic Garden and Botanical Museum Berlin-Dahlem).
|-
|IPRStatements/Citation
|*@language
|language of citation
|should be "en" as literal
|-
|IPRStatements/Copyright
|*Text
|
|The copyright for any material created by the DNA bank of the BGBM is reserved. The duplication or use of information and data such as texts or images is only permitted with the indication of the source or with prior approval by the BGBM.
|-
|IPRStatements/Copyright
|*@language
|language of copyright
|should be "en" as literal
|-
|IPRStatements/TermsOfUse
|*Text
|
|The use of the data is allowed only for non-profit scientific use and for non-profit nature conservation purpose. The data bases or part of it may only be used or copied by the written permission from the legal owner.
|-
|IPRStatements/TermsOfUse
|*@language
|language of the terms of use
|should be "en" as literal
|-
|
|IconURI
|complete url path to the logo of your institution
|
|-
|Owner
|*Address
|Complete Address of the institution that owns the DNA bank samples and data
|
|-
|Owner/Representation
|*Text
|name of your institution
|Botanic Garden an Botanical Museum Berlin-Dahlem (Freie Universität Berlin)
|-
|Owner
|*URL
|path to website of your institution
|http://www.bgbm.org
|-
|Unit
|*RecordBasis
|this value must be part of the ABCD vocabulary
|must be "MaterialSample"
|-
|Unit
|*KindOfUnit
|the type of sample
|e.g. DNA
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
7aad6cf951a8d7402ad4cb43acdb3fe38e07c569
1003
1002
2018-09-27T11:40:01Z
JoergHoletschek
3
/* IPR Statements */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains seven sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|
|
|-
|Copyright
|
|
|-
|IPRDeclaration
|
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
e451175f3f0d4f18d0f5adaf056cd75e473e1312
1004
1003
2018-09-27T11:42:36Z
JoergHoletschek
3
/* IPR Statements */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains seven sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|
|-
|Copyright
|
|
|-
|IPRDeclaration
|
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
4794238754a43359846ea7f8744eab884fb0ff86
1005
1004
2018-09-27T11:44:38Z
JoergHoletschek
3
/* IPR Statements */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Sample data==
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
06355a318b544e2e2dc64e2acabe967531220dcb
1006
1005
2018-09-27T13:45:33Z
JoergHoletschek
3
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''. For each specimen, one ''Units/Unit'' will be created.
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
3478fdef85a7611257a416cd63db1f67859f12e9
1007
1006
2018-09-27T13:53:59Z
JoergHoletschek
3
/* Specimen Data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|
|
|-
|SourceInstitutionID*
|
|
|-
|UnitID*
|
|
|-
|UnitGUID
|
|
|-
|CollectorsFieldNumber
|
|
|-
|RecordBasis
|
|
|-
|KindOfUnit
|
|
|-
|Sex
|
|
|-
|RecordURI
|
|
|-
|Notes
|
|
|-
|DateLastEdited
|
|
|-
|LastEditor
|
|
|-
|}
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
200daf6f1854b18ef7be557ea29a1d94368e44b0
1008
1007
2018-09-27T13:58:15Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|
|
|-
|RecordBasis
|
|
|-
|KindOfUnit
|
|
|-
|Sex
|
|
|-
|RecordURI
|
|
|-
|Notes
|
|
|-
|DateLastEdited
|
|
|-
|LastEditor
|
|
|-
|}
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
1118b5df4a17925fd61378b9c45bb46dbd6c3966
1009
1008
2018-09-27T14:04:51Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|
|
|-
|Sex
|
|
|-
|RecordURI
|
|
|-
|Notes
|
|
|-
|DateLastEdited
|
|
|-
|LastEditor
|
|
|-
|}
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
58ce317cae0dc139e64f90f1af845b1ba3cf19e9
1010
1009
2018-09-27T14:13:16Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
c871bafd44267ebbf6e7cfc379755de6a187f034
1011
1010
2018-09-27T14:17:02Z
JoergHoletschek
3
/* IPR Statements */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===The sample identifiers===
We use identifier the same way as GBIF does. In addition to the traditional triple ID (see below) you can also provide the GUID. '''Please note that UnitID should be unique in one database!''' Mostly the extraction number is used for it.
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Unit
|*<span style="color:red">SourceID</span>
|short description of relevant collection
|should be "DNA Bank" or "tissue collection"
|-
|Unit
|*<span style="color:red">SourceInstitutionID</span>
|short name/abbreviation of relevant institution
|BGBM
|-
|Unit
|*<span style="color:red">UnitID</span>
|DNA extraction number or tissue number
|DNA 123
|-
|Unit
|UnitGUID
|sample record GUID
|f6c7fd5a-2f04-4dcb-ba38-0230bf196d30
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
ce8577e1bed8eadc8234d5810369f7d75c313686
1012
1011
2018-09-27T14:18:45Z
JoergHoletschek
3
/* The sample identifiers */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===GGBN terms===
The following fields are highly recommended, some are mandatory (marked with *), but feel free to map more!
<div id="wikinote">'''Please have a look at the [http://terms.tdwg.org/wiki/GGBN_Data_Standard GGBN Data Standard] documentation where all GGBN terms are described in detail. The table below is just listing the most important ones. Since the Nagoya Protocol has come into force we higly recommend to map the Permit fields. They will become mandatory for providing data to GGBN at the end of 2020. Until then all core members must have implemented the required fields in their databases.'''</div>
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|
|*RecordBasis
|The specific nature of the data record, controlled vocabulary!
|"PreservedSpecimen", "MaterialSample", "FossilSpecimen", "LivingSpecimen", "HumanObservation", "MachineObservation"; for Tissue or DNA samples use "MaterialSample"
|-
|
|*materialSampleType
|Classification of kind of physical sample in addition to BasisOfRecord/RecordBasis and Preparation Type
|"tissue", "DNA", "specimen"
|-
|SpecimenUnit/Preparation
|*preparationType
|description of type of material, free text
|or DNA: gDNA, eDNA, aDNA; for tissues/specimens: leaf, muscle, leg, blood
|-
|SpecimenUnit/Preparation
|*preparationDate
|date of DNA extraction
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparatioMaterials
|extraction kit or protocoll
|if unknown type "unknown"
|-
|SpecimenUnit/Preparation
|*preparedBy
|extraction staff
|if unknown type "unknown"
|-
|SpecimenUnit/Preservation
|preservation
|preservation of the tissue or DNA
|if unknown type "unknown"
|-
|SpecimenUnit/Loan/Permit
|*permitStatus
|Information about the presence, absence or other basic status of permits associated with the sample(s), controlled vocabulary!
|Permit available, Permit not required, Permit not available, '''Unknown Material collected after 2014-10-12 cannot be in "Unknown" permit status!'''
|-
|SpecimenUnit/Loan/Permit
|*permitStatusQualifier
|Description of why a certain permit was not required or why Permit Status is unknown
|"no national requirement for a permit at date of access", "officially authorized illegal holder", "collected on private land", "pre-Nagoya"
|-
|SpecimenUnit/Loan/Permit
|*permitType
|A permit is a document that allows someone to take an action that otherwise would not be allowed, controlled vocabulary!
|Collecting Permit, Import Permit, Export Permit, Intellectual Property Rights, Copyright, Patent, Data use, Phytosanitary, Salvage, Exemption Permit, Material Transfer Agreement, Internationally Recognized Certificate of Compliance, Contract, Memorandum of Understanding, Memorandum of Cooperation, Veterinary Certificate, Human Pathogens, Genetically Modified Organism, Other
|-
|SpecimenUnit/Loan/Permit
|*permitText
|The text of a permit related to the gathering/shipping or further details
|
|-
|GGBN/Amplification
|amplificationDate
|date of amplification; if unknown or general without content you don't have to map it
|should be ISO format yyyy-mm-dd
|-
|GGBN/Amplification
|marker
|
|COX1
|-
|GGBN/Amplification
|geneticAccessionNumber
|the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD; this is a repeatable element, you can provide as much as you want
|e.g. AJ45567
|-
|GGBN/Amplification
|genBankNumber-URI
|complete link to the accession number of NCBI/EMBL/DDBJ or the process ID of BOLD
|
|-
|SpecimenUnit
|blockedUntil
|in case the sample is blocked until a specific date it's nevertheless searchable but customers cannot order it
|ISO format
|-
|SpecimenUnit
|blocked
|sample is blocked (e.g. because it is consumed), but data are still available
|Yes/No
|-
|GGBN
|concentration
|concentration of the DNA
|65,34
|-
|GGBN
|@unit
|unit of the concentration
|µg/ml
|-
|GGBN
|ratioOfAbsorbance260_230
|map only if filled with content
|1,2
|-
|GGBN
|ratioOfAbsorbance260_280
|map only if filled with content
|1,8
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
1290099ed1500c433865e0eaf6fa614e1c3f32ea
1013
1012
2018-09-27T14:18:53Z
JoergHoletschek
3
/* GGBN terms */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Multimedia items of the voucher===
These should be mapped in the specimen mapping, not the DNA mapping.
{| class="wikitable"
! Category
! Element
! Discription
! Comment
|-
| rowspan="3" | Metadata
| Title
|
|
|-
| IPR
|
|
|-
| TechnicalContact
|
|
|-
| Unit
| UnitID
|
|
|}
fd0467ae89b589781bdf3ada504ffab4e6844809
1014
1013
2018-09-27T14:19:25Z
JoergHoletschek
3
/* Multimedia items of the voucher */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===The voucher identifiers===
{| class="wikitable"
! width="120px" | Group
!Element
!Remarks
!Example
|-
|Associations/UnitAssociation
|*UnitID
|the UnitID or CatalogueNumber used for GBIF
|e.g. the barcode number of your specimens
|-
|Associations/UnitAssociation
|*SourceInstitutionID
|the SourceInstitutionID or InstitutionCode used for GBIF
|e.g. the acronym of your institution
|-
|Associations/UnitAssociation
|*SourceName
|the SourceID or CollectionCode used for GBIF
|e.g. the name of the collection where the specimen belongs to, e.g. "Birds"
|-
|Associations/UnitAssociation
|*AssociationType
|the Relation between the DNA and the voucher
|e.g. "DNA and voucher from same individual"
|-
|Associations/UnitAssociation
|*DatasetAccessPoint
|the wrapper url of the voucher record
|e.g. "http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar"
|}
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
372ee588656823961ec5e5fbda013456de6bddcc
1015
1014
2018-09-27T14:19:40Z
JoergHoletschek
3
/* The voucher identifiers */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
c78677dab7cfd5f83c430e10e53018fcdef464a6
1016
1015
2018-09-27T14:21:29Z
JoergHoletschek
3
/* General metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
061bf0c321e429b9a63c68d26615d98875c58afc
1017
1016
2018-09-27T14:28:30Z
JoergHoletschek
3
/* Specimen Data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
de67bf9affb902867916e7affb1e0938aa94e7b6
1018
1017
2018-09-27T14:41:16Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
! width="120px" | Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
7fb3989051a989f5360e97b730bf3ed38ebed7a4
1019
1018
2018-09-27T14:42:12Z
JoergHoletschek
3
/* General metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
==Related Specimen Data==
<div id="wikinote">All specimen voucher information must be available via a GBIF compliant database! Both Darwin Core-Archive and BioCASE specimen providers are possibe! To provide the underlying specimen data you can use your existing GBIF dataset mapping.</div>
[[File:Relationships.jpg|thumb|500px|In the database and the mapping the child record should refer to its mother record in opposite to the real world example]]
===Gathering event of the voucher===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
1e5b0a1ebaf779de9562c6d5cde01742191fa7d3
1020
1019
2018-09-28T07:01:34Z
JoergHoletschek
3
/* Related Specimen Data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
0e5fed79c9b811cfb014b7e0268b4ce4ca99e590
ABCD2Concepts
0
115
1021
1020
2018-09-28T07:02:07Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
'''All elements marked with * will be indexed and must be mapped!''' Mapping these gathering facts twice (one for the specimen database and one for the DNA mapping) is required because of indexing and later search purposes.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
e0ad46a8bf264a8db521b2a3259dbda5a9bce9a4
1022
1021
2018-09-28T07:04:20Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|1055
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
34f662d7508b8e17c93f07a93df7146809a0bd36
1023
1022
2018-09-28T07:04:37Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|
|*CollectorsFieldNumber
|the number the collector gave to the specimen in the field, often used in Botany but not in Zoology; map it if you have content
|e.g. 765/10
|-
|Gathering/Agents/GatheringAgent
|*FullName
|the Collector or Collector Team
|e.g. Scholz & Sipman
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
c1afab57a9933bdcb5c75767a58ae76821a90b83
1024
1023
2018-09-28T07:11:36Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|Agents
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
7ed6df453a8e7be2506ef85f712ba741cecf242a
1025
1024
2018-09-28T07:12:05Z
JoergHoletschek
3
/* General metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remarks
|-
|Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|Agents
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
9e3900e86f0b82dad468be7fab98ccca58a0cbaa
1026
1025
2018-09-28T07:12:29Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|Gathering/Altitude
|*LowerValue
|if you have both the lower and upper value in different columns map both field, if not map LowerValue only
|e.g. 100
|-
|Gathering/Altitude
|UpperValue
|
|e.g. 200
|-
|Gathering/Altitude
|*Unit
|
|e.g. m
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
0297da76e1c1b8a35a2fc85b45a11f7c4ac78cfb
1027
1026
2018-09-28T07:21:34Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
cf76a4434ef74d48ba99d1c39ebabe4eb4f58b74
1028
1027
2018-09-28T07:23:30Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
|rowspan="2" colspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
8bd29333fdc44173b400d8d997f198530965e89d
1029
1028
2018-09-28T07:27:11Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
|rowspan="2" colspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|rowspan="3" | MeasurementOrFactAtomised
|LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
92463bc558aad8bf2bf268d6617ba88c724e26bd
1030
1029
2018-09-28T07:30:34Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|Gathering/Country
|*ISO3166Code
|ISO code of the country where the voucher was collected
|e.g. US
|-
|Gathering/Country
|*Name
|english Name of the country
|e.g. United States of America
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
481df86a528998ef78fdfc857f6ec813d4abc231
1031
1030
2018-09-28T07:33:40Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' sub section of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|Gathering/DateTime
|*DateText
|date when voucher was collected, if you have content yuo can also use ISO format
|e.g. 21. April 1951
|-
|Gathering/Locality
|*LocalityText
|
|e.g. 5km NO Berlin
|-
|Gathering/NamedArea
|AreaName
|name of continent
|e.g. Europe
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
66cc20f3d0888ad11156f5fb4d0b7307f6283c6d
1032
1031
2018-09-28T07:39:32Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|Gathering/NamedArea
|@language
|language of the name of continent
|e.g. "en"
|-
|Gathering/SiteCoordinates
|*LatitudeDecimal
|
|e.g. -15,88876
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
93f898f9f21f217ed37546d6e75920f4c8beb5f3
1033
1032
2018-09-28T07:43:51Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Gathering/SiteCoordinates
|*LongitudeDecimal
|
|e.g. 72,88876
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
f7024c8fc4509173da2317f10ec0d47776bcbfdb
1034
1033
2018-09-28T08:02:46Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|rowspan="8" | SiteCoordinateSets/SiteCoordinates
|CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
a9bb1fb9b354530ecf7d5e2f628cca4f3e14615a
1035
1034
2018-09-28T08:05:47Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|rowspan="8" | SiteCoordinateSets/SiteCoordinates /CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
65d555ac0723cf76c792d1fb0217328ed53aa571
1036
1035
2018-09-28T08:06:34Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
1a85e27e29139c290ee8e5338be8de6227ab83b8
1037
1036
2018-09-28T08:32:05Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
2c7d50fc1ef28be5c09f3291c7ad6d6745c2e2ba
1038
1037
2018-09-28T08:38:55Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
|AreaDetail
|
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
f880e78429e4d3cad836811d468d12ff934306fc
1039
1038
2018-09-28T08:41:54Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
|AreaDetail
|
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
|
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
852a2ef5c9cbf6b67c1b4dab41211adde6fdc3bc
1040
1039
2018-09-28T08:44:13Z
JoergHoletschek
3
/* Gathering event */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
===Identification history of the voucher===
Mostly specimen databases record the complete determination or identification history of a single specimen. For GGBN we try to get all available information into the portal.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
977cff4a36dd5e4f268c54735403dbd605f60eff
1041
1040
2018-09-28T09:00:29Z
JoergHoletschek
3
/* Identification history of the voucher */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
e5dfab7fbb3bbbe1228233a12ddf4da07fb83c62
1042
1041
2018-09-28T09:02:32Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
! | Group
!Element
!Remarks
!Example
|-
|Identification
|*PreferredFlag
|mark the presently preferred Identification
|e.g. true, false, 0, 1
|-
|Identification/HigherTaxon
|*HigherTaxonName
|the name of the higher taxon, please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|e.g. Asteraceae, Animalia
|-
|Identification/HigherTaxon
|*HigherTaxonRank
|the rank of the taxon in english or latin
|e.g. familia, regnum, phylum
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
4c8af43741cd651442a4668cc84cf70feca1a287
1043
1042
2018-09-28T09:09:46Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|rowspan="2" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
c499937c3d424b4c8998ddd82ba3fffb16329a89
1044
1043
2018-09-28T09:14:29Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
9a7bf6bfef3400e1c80bb9452d5c4a732f3a1ff9
1045
1044
2018-09-28T09:22:03Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="2" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
82a6a487bd063b61e2734ba42f429a9723c24904
1046
1045
2018-09-28T09:37:20Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="2" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|Identification/ScientificName
|*FullScientificName
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
4437915e14689b30290c2dbab221b3041e9a3617
1047
1046
2018-09-28T09:44:30Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="7" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|rowspan="5" | ScientificName
|FullScientificNameString*
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
5eb8f8d728835b7b664948501035104d169cb1e2
1048
1047
2018-09-28T09:48:37Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="8" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|rowspan="5" | ScientificName
|FullScientificNameString*
|the complete name of the taxon including Authors (and years for animals)
|e.g. Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
48bcb20fa3fc76e5582e63fb94c1050b3d52ce58
1049
1048
2018-09-28T09:50:40Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="8" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|rowspan="5" | ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|Identification/ScientificName/NameAtomised
|*FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|Identification/ScientificName/NameAtomised
|*InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Identification/ScientificName/NameAtomised
|*Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
8a7ec9dd338561198c15eec7466b35e59209df27
1050
1049
2018-09-28T09:55:19Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="8" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="4" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
c2d5b376c7dbd3df33c08f236170faaed24bf961
1051
1050
2018-09-28T09:56:23Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|
|e.g. Aaronsohnia
|-
|FirstEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|InfraspecificEpithet
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. factorovskyi
|-
|Rank
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|-
|AuthorTeam
|Please note: ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|e.g. var.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
e4e668a652858d1764ec272082bd5aeaa76a6c30
1052
1051
2018-09-28T10:00:05Z
JoergHoletschek
3
/* Identification history */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===XXX===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|}
4f4d6cc09d12232b600949cbe5cd764af8636e4d
1053
1052
2018-09-28T12:35:39Z
JoergHoletschek
3
/* XXX */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
57a452f8565d8eefd89bbe241ffde7b119b08274
1054
1053
2018-09-28T12:42:53Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|
|
|-
|ProductURI*
|
|
|-
|Comment
|
|
|-
|Format
|
|
|-
|FileSize
|
|
|-
|Creator
|
|
|-
|CreatedDate
|
|
|-
|ID
|
|
|-
|IPR
|
|
|-
|}
2e59e4e42fa937220ae2a8129b6899f2b9053393
1055
1054
2018-09-28T12:55:18Z
JoergHoletschek
3
/* Multimedia */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI*
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|W.-H. Kusber
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the remarks in [[asdfds]].
|-
|}
96561d932d0debec58795d6e8157f442506e21b7
1056
1055
2018-09-28T12:57:05Z
JoergHoletschek
3
/* Multimedia */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|W.-H. Kusber
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
ea6abede60f73941b3c2cec805b3176c30eef5ab
1057
1056
2018-09-28T13:00:45Z
JoergHoletschek
3
/* Multimedia */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
ca297ade236bfa498ced5a4016c745a97320b0a4
1059
1057
2018-10-01T08:27:55Z
JoergHoletschek
3
/* IPR Statements */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
95cffc981f6ef83a1b3449d70e4ed5f05b4052b1
1060
1059
2018-10-01T08:30:59Z
JoergHoletschek
3
/* General metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
45b2c95eb30705305652d539c4a73012b5426e8b
1061
1060
2018-10-01T08:31:42Z
JoergHoletschek
3
/* Metadata */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a specimen is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
d06c9cdf1fd5444830b7b12f2205ff99bfed86da
1062
1061
2018-10-01T08:37:30Z
JoergHoletschek
3
/* Specimen Data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a coontrolled vocabulary.
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
a1cc2021379790b94998ba5642fb70511db2400a
1063
1062
2018-10-01T08:51:16Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|PreservedSpecimen
|An indication of what the unit record describes; needs to comply with a [http://tdwg.github.io/dwc/terms/index.htm#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
877c2226289ff4d9761e487e9e533114f3fd31d8
CommonABCD2Concepts
0
22
1058
983
2018-10-01T08:26:52Z
JoergHoletschek
3
/* Mandatory */
wikitext
text/x-wiki
This page lists the most commonly used ABCD 2.06 concepts. The ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a tabular list of ABCD concepts [http://terms.tdwg.org/wiki/ABCD_2_XPath_to_Short_Name_Mapping here].
== Mandatory ==
List of mandatory concepts. Without them being mapped, the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ ├─ Owners
│ │ └─ Owner
│ │ ├─ LogoURI
│ │ ├─ URIs
│ │ │ └─ URL
│ │ ├─ Person
│ │ │ └─ FullName
│ │ └─ Organisation
│ │ └─ Name
│ │ └─ Representation
│ │ └─ Text
│ └─ IPRStatements
│ └─ Licenses
│ └─ License
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
d3b5cdcfe3619c2a9a77f03f74823e295529329b
1064
1058
2018-10-01T08:53:43Z
JoergHoletschek
3
wikitext
text/x-wiki
This page lists the mandatory and most commonly used ABCD 2.06 concepts. For examples on the differenct concepts and their short explanations see [[ABCD2Concepts]].
The full ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a tabular list of ABCD concepts [http://terms.tdwg.org/wiki/ABCD_2_XPath_to_Short_Name_Mapping here].
== Mandatory ==
List of mandatory concepts. Without them being mapped, the Provider Software will not be able to create valid ABCD document:
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ └─ Name
├─ TechnicalContacts
│ └─ TechnicalContact
│ └─ Name
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ ├─ @language
│ │ └─ Title
│ └─ RevisionData
│ └─ DateModified
└─ Units
└─ Unit
├─ SourceInstitutionID
├─ SourceID
└─ UnitID
</pre>
== Highly Recommended ==
List of recommended ABCD concepts. If you can provide this data, please do so, they're commonly used entry points to your data.
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
<pre>
DataSets
└─ DataSet
├─ ContentContacts
│ └─ ContentContact
│ ├─ Email
│ └─ Address
├─ TechnicalContacts
│ └─ TechnicalContact
│ ├─ Email
│ └─ Address
├─ Metadata
│ ├─ Description
│ │ └─ Representation
│ │ └─ Details
│ ├─ Owners
│ │ └─ Owner
│ │ ├─ LogoURI
│ │ ├─ URIs
│ │ │ └─ URL
│ │ ├─ Person
│ │ │ └─ FullName
│ │ └─ Organisation
│ │ └─ Name
│ │ └─ Representation
│ │ └─ Text
│ └─ IPRStatements
│ └─ Licenses
│ └─ License
│ ├─ @language
│ ├─ Text
│ └─ URI
└─ Units
└─ Unit
├─ Identifications
│ └─ Identification
│ └─ Result
│ ├─ @PreferredFlag
│ ├─ TaxonIdentified
│ │ └─ ScientificName
│ │ └─ FullScientificNameString
│ └─ HigherTaxa
│ └─ HigherTaxon
│ ├─ HigherTaxonName
│ └─ HigherTaxonRank
├─ RecordBasis
└─ Gathering
├─ DateTime
│ └─ ISODateTimeBegin
├─ Agents
│ └─ GatheringAgent
│ └─ Person
│ └─ FullName
├─ LocalityText
├─ Country
│ ├─ ISO3166Code
│ └─ Name
└─ SiteCoordinateSets
└─ SiteCoordinates
└─ CoordinatesLatLong
├─ LongitudeDecimal
├─ LatitudeDecimal
└─ CoordinateErrorDistanceInMeters
</pre>
== Commonly Used ==
List of further commonly mapped ABCD concepts.
<pre>
DataSets
└─ DataSet
├─ Metadata
│ └─ IPRStatements
│ ├─ TermsOfUseStatements
│ │ └─ TermsOfUse
│ │ └─ Text
│ ├─ Copyrights
│ │ └─ Copyright
│ │ └─ Text
│ ├─ IPRDeclarations
│ │ └─ IPRDeclaration
│ │ └─ Text
│ ├─ Licenses
│ │ └─ License
│ │ └─ Text
│ ├─ Disclaimers
│ │ └─ Disclaimer
│ │ └─ Text
│ ├─ Citations
│ │ └─ Citation
│ │ └─ Text
│ └─ Acknowledgements
│ └─ Acknowledgement
│ └─ Text
└─ Units
└─ Unit
├─ DateLastEdited
├─ Identifications
│ └─ Identification
│ ├─ Date
│ │ └─ ISODateTimeBegin
│ └─ Identifiers
│ └─ Identifier
│ └─ IdentifierPersonName
│ └─ FullName
├─ KindOfUnit
├─ CollectorsFieldNumber
├─ Sex
├─ Age
├─ Notes
├─ RecordURI
├─ MultiMediaObjects
│ └─ MultiMediaObject
│ ├─ FileURI
│ ├─ Comment
│ └─ Context
├─ SpecimenUnit
│ └─ NomenclaturalTypeDesignations
│ └─ NomenclaturalTypeDesignation
│ ├─ TypeStatus
│ ├─ TypifiedName
│ │ └─ FullScientificNameString
│ └─ NomenclaturalReference
│ ├─ TitleCitation
│ └─ CitationDetail
└─ Gathering
├─ Project
│ └─ ProjectTitle
├─ Biotope
│ └─ Name
├─ Altitude
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
├─ Depth
│ └─ MeasurementOrFactAtomised
│ ├─ LowerValue
│ └─ UnitOfMeasurement
└─ NamedAreas
└─ NamedArea
├─ AreaName
└─ AreaClass
</pre>
49b36d8a3a29d12cf96213eb2175f0d930b7d4d6
ABCD2Mapping
0
29
1065
900
2018-10-01T08:54:37Z
JoergHoletschek
3
/* Access to Biological Collection Data Schema (ABCD) */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]] and a comprehensive list of example values on the page [[ABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] page. The full ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
f576b6f7dd297fb25f2fb1d410c75ce6b4377054
1066
1065
2018-10-01T08:56:40Z
JoergHoletschek
3
/* Adding additional ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]] and a comprehensive list of example values on the page [[ABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] and [ABCD2Concepts] pages. The full ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
24a85630c0a63af0fd9f602f19b6ae82482da502
1067
1066
2018-10-01T08:57:22Z
JoergHoletschek
3
/* Adding additional ABCD Elements */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]] and a comprehensive list of example values on the page [[ABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight>
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] and [[ABCD2Concepts]] pages. The full ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
614ecc2296cb229ee364bc28eec6adc1af77d105
1068
1067
2018-10-01T09:03:14Z
JoergHoletschek
3
/* Initial Testing of the Data Source */
wikitext
text/x-wiki
This tutorial will explain how to set up a mapping for the ABCD2.06 data schema. If you intend to map another schema (e.g. one of the ABCD extension ABCD-EFG, ABCD-DNA or HISPID), you still should take the time to read it. Large portions of the process will be identical.
== Access to Biological Collection Data Schema (ABCD) ==
ABCD in its current version 2.06 is the data schema typically used in conjunction with BioCASe. It is a highly complex XML data schema with about 1,000 elements that is able to store almost every piece of information that can be found in a natural history specimen collection or an observation database. The complexity is due to the fact that it can be used for a wide range of collections/databases – for living and preserved specimens, observations and culture collections, for zoological, botanical, bacterial and viral collections, marine or terrestrial, for herbaria, botanic and zoological gardens. For each of these special types, ABCD features special sections where information specific for this type can be stored. Other sections of ABCD will be shared by all these types, for example for gathering site, identifier or metadata.
The full ABCD documentation can be found in the http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki], a list of commonly used ABCD elements on the Wiki page [[CommonABCD2Concepts|Common ABCD2 Concepts]] and a comprehensive list of example values on the page [[ABCD2Concepts]].
== Creating an ABCD Mapping for a Data Source ==
If you created a data source from a template (e.g. ''abcdmetadata''), a schema mapping for ABCD will be already existent. In this case, you can directly jump to the next section. If you created an empty data source, the section <small>Schemas</small> in the data source configuration overview will be empty:
[[File:abcdSchemaMappings.png|border]]
In order to create a new schema mapping, select the desired schema from the list and click <small>Create</small>. For ABCD, choose <small>ABCD_2.06.xml</small> (be careful not to hit one of the ABCD extensions, they look quite similar). After clicking <small>Create</small>, you will be directed to the mapping editor, which will allow you to edit the mappings.
== The Mapping Editor ==
The mapping editor allows you to add, remove and edit ABCD mappings. On top you’ll find some summary information, on the bottom you’ll see the structure of the ABCD mapping:
[[File:abcdMappingEditorEmpty.png|border]]
First thing we will do is to set the root table, which is the table that holds the records you want to publish (specimens or observations). That table must hold one record per object to be published, identified by a unique identifier (called ''UnitID''). This identifier doesn't need to be the primary key necessarily, as long as it is unique (if that sentence confuses you, ignore it and just keep in mind that the UnitID must be unique.) Use the drop down box labelled <small>Root table Alias</small> to select the root table of your data model.
If your metadata table holds just one record (because all occurrences published share the same metadata) and if it is not linked to the root table by a foreign key, you can specify this table in the drop-down box <small>Static table Alias</small>. The Provider Software will use a natural join to connect the metadata record stored in this table to all occurrences published. If your metadata table is referenced by a foreign key in the root able, you must not declare the metadata table as a static table! So either join the metadata table using a foreign key OR declare it as a static table.
'''Note:''' If you're using Access, you cannot use a static table, because Access doesn't support that. So when using Access, you always have to reference the metadata table with a foreign key.
When you’ve set the root table (and static table, if you use that), press <small>Save</small>. As with the DB structure setup, this will write your changes to the configuration files, closing the tab without saving will discard your changes! Also, in case you messed something up, you can use the <small>Revert</small> button to restore the state when you’ve saved for the last time.
In the mapping editor, the link <small>Overview</small> at the top of the page will take you back to the datasource configuration overview. After creating a mapping, it will appear in the section <small>Schemas</small>. The entry will show the number of mapped elements (0 for now) and the schema namespace. Pressing the trash can symbol will move it to the trash can, which means that your web service does not support this schema anymore; if you did this by mistake, you can restore it by pressing the <small>Restore</small> button. <small>Purge</small> will delete the schema mapping permanently:
[[File:abcdSchemaMappings2.png|border]]
You can map several schemas for a given datasource. For example, in addition to the current ABCD2 standard, you could add the deprecated version 1.2 (even though I have no idea why you should do that) or DarwinCore. Just select the appropriate schema in the drop-down list and click <small>Create</small>. Since the namespace of a schema will be used in requests, you cannot create two mappings for the same namespace. Trying this will get you an error message.
== Adding Mandatory ABCD Elements ==
Clicking on a schema in the datasource overview page will take you again to the mapping editor. In the lower half of the page, you will see the basic structure of an ABCD document:
[[File:abcdMappingEditorEmptyBottom.png|border]]
<strong>Technical/Content Contact:</strong> These trees hold information on who should be contacted for technical issues or questions concerning the published database, each with name, address, email address and telephone number.
<strong>Metadata:</strong> In this sub tree you’ll find all metadata fields, for example title and description of the dataset, ownership information, date last modified, IPR statements etc.
<strong>Units:</strong> This part stores the "real" data you want to publish, that means all specimen or observation data. The three elements already shown in the tree are identifiers that make up the so called "Triple ID", which uniquely identifies records within primary biodiversity networks such as BioCASe and GBIF:
* ''UnitID'', which is a unique identifier for each record to be published (you can use the catalogue number, for example, or an existing barcode);
* ''SourceInstitutionID'', an identifier for the institution publishing the dataset (for example BGBM);
* ''SourceID'', an identifier for the dataset (e.g. “Herbarium Berolinense’’).
The elements already shown in the mapping editor are printed in red because they are mandatory, which means they are required for an ABCD document. Without them being mapped (to database fields that are non-empty), the Provider Software will not be able to construct valid ABCD documents and will not publish any records. So the first elements that should be mapped are the mandatory fields.
To add a mapping, click the <strong>+</strong> symbol next to the field, which will open the mapping editor dialog, where you can select the database table/column you want to map the ABCD element to:
[[File:abcdMappingEditorDialog.png|border]]
In this case, the element ''/DataSets/DataSet/Metadata/RevisionData/DateModified'' is mapped to the column ''source_update'' of the ''metadata'' table, which has the data type ''date''. (Remember that table/column retrieval is not supported for all DBMS, so if you’re unlucky, you might need to type in table/column name manually.) <small>Save</small> will accept your settings and close the dialog, <small>Cancel</small> will discard any changes.
Instead of mapping an element to a database field, you can map it to a literal. For example, you could enter the technical and content contact information directly as literals in the mapping editor dialog (assuming they’re the same for all records). However, we strongly discourage you from doing this. For one thing, this is just bad style, since it will scatter the information published over different places: Some will be retrieved from the database, some (the literals) will be loaded from the configuration files. Changing the metadata of your service later would then require access to the database and access to the BioCASe configuration – that means the configuration tool password. Be nice to the person who will do these changes and put everything neatly in a database table!
The second reason is even more important: Using literals for an element will result in this element to become not searchable, which means it cannot be used in a filter of a Search or a Scan request. Even though this behaviour is discoverable with a Capabilities request (by evaluating the ''searchable'' flag), a potential user of your web service might just not think of that, so it’s a good idea to avoid that in first place. Please use literals sparsely!
In the mapping editor window, you can select several source columns and several literals, even a combination of both. The Provider Software will simply concatenate the values retrieved from the database and the literals specified (in the order they’re given). But be careful: any use of concatenation or literals will make the element not searchable. A better solution is to do such manipulations earlier, in a database view, and direct the mapping editor to a single resulting database field.
Use the mapping editor window to add mappings for all eight mandatory fields: Click on the <strong>+</strong> symbol next to the element, choose table/column name and the correct data type, then press <small>Save</small>. When you’re done, the page should look similar to the following image. Press <small>Save</small> in the main window to write your changes to the configuration files.
[[File:abcdMappingEditorMandatoryElements.png|border]]
== Initial Testing of the Data Source ==
Once you’ve mapped all mandatory elements, you can do the first test of your BioCASe web service. Even though you haven’t mapped any real information yet, it is a good idea to check the service and solve any problems hitherto before continuing with the mapping. Click on <small>Test mapping!</small> to open the Query Form that can be used for this purpose:
[[File:abcdQueryFormEmpty.png|border]]
With the Query Form you can send a BioCASe request to your web service; it will wait for the reply of the web service and display the response document. On top of the page you can see the URL of your web service. In this case it is ''<nowiki>http://localhost/biocase/pywrapper.cgi?dsa=flora</nowiki>'', ''flora'' being the name of the datasource. Make sure this is correct for your installation!
Into the text box below you can enter the request XML text. Because it would be cumbersome to enter the whole BioCASe request, you can use the links below the box to load templates. For now, click on <small>ABCD2 Search</small> to fill the box with a BioCASe Search request for documents in the ABCD2 format (the one you’ve just mapped):
<syntaxhighlight lang="XML">
<?xml version='1.0' encoding='UTF-8'?>
<request xmlns='http://www.biocase.org/schemas/protocol/1.3'>
<header><type>search</type></header>
<search>
<requestFormat>http://www.tdwg.org/schemas/abcd/2.06</requestFormat>
<responseFormat start='0' limit='10'>http://www.tdwg.org/schemas/abcd/2.06</responseFormat>
<filter>
<like path='/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString'>A*</like>
</filter>
<count>false</count>
</search>
</request>
</syntaxhighlight>
As you can see, there is a filter set on the ''ScientificName'' element. Since we haven’t mapped this element yet, this won’t work. So let’s remove the filter (all lines between <filter> and </filter>, including the ''filter'' tags), leaving the text box like this:
[[File:abcdQueryFormFilled.png|border]]
Pressing <small>Submit</small> will send the request to the web service and – hopefully – display the response document with the correct ABCD records. For the mapping we’ve just created, it should look similar to the following (use the "–" symbol next to the trees TechnicalContact, ContentContact and Metadata to collapse them):
[[File:abcdResponseMandatoryElements.png|border]]
If you get an error, please check out the [[Debugging]] tutorial on how to debug a web service. You should continue the mapping process only after your web service returns results for the basal mapping we’ve just created.
== Adding additional ABCD Elements ==
Once you’ve successfully managed to map the mandatory ABCD elements ("successfully" means the web service returns ABCD documents), you can go on with the mapping process. This is usually an iterative process: You add a handful of elements (for example, country, country code, locality text and coordinates for the gathering site), then you use the Query Form to see if the information ends up where it is supposed to do. This is the reason the Query Form opens up in a separate tab (or window, of you configured your web browser so): In one tab, you use the mapping editor to add new elements; after pressing <small>Save</small> you go to the Query Form tab and see what the response documents look like. Redo this until you’ve mapped all information you want to publish.
In order to map new ABCD concepts, tick the check box labelled <small>Show all concepts</small> and press <small>Refresh</small>. The mapping editor will then display the whole ABCD tree, which looks admittedly a bit intimidating. In order to find the concept you’re looking for, use the search function of your browser. If you want to map the country name of the gathering site, for example, hit <small>Ctrl + F</small> (for Firefox, Microsoft IE and Opera) and type in the name of the ABCD element, namely ''country''. The browser will jump to the ''Country'' tree of the ''Gathering'' element, where you’ll find the elements for country name (''Name''), ISO country code (''ISO3166Code'') and the country name in the country’s language (''NameDerived''):
[[File:abcdMappingEditorSearch.png|500px]]
Continue the sequence mapping new elements/testing until you’ve mapped all information you want to publish. You can have a look at the list of recommend and commonly used ABCD elements on the [[CommonABCD2Concepts|Common ABCD2 Concepts]] and [[ABCD2Concepts]] pages. The full ABCD documentation can be found in the [http://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
The following page will show you a sample response ABCD document for a web service with 77 concepts mapped. Of course your documents will look different, because you will probably use different ABCD elements, but still it’s good to get an idea: [[SampleABCDDocument]].
373ccf266ecb5fb0f99689ef83cac1ee74cafbe2
Archiving
0
80
1069
917
2018-10-01T09:04:04Z
JoergHoletschek
3
/* Discovery of Archives */
wikitext
text/x-wiki
'''This page describes the archiving features in version 3.4 or later.<br>If you're using version 3.0 or 3.1, please read the [[Archiving_v3.0/3.1|version 3.0/3.1 page]], for versions 3.2 and 3.3, go [http://wiki.bgbm.org/bps/index.php?title=Archiving&oldid=713 here].'''
With the archiving feature, you can create archive files that store all data published by your BioCASe web service. That might be handy if your database stores a huge number of records (several hundred thousand or even millions) and the traditional harvesting approach of paging through the records published by the web service takes unacceptably long. Once stored in archives, these files can be downloaded from your web server or sent to the harvester via email and ingested much faster. The OpenUp! natural history aggregator, for example, can use this method for fast harvesting of huge datasets.
There are two types of archives: <strong>XML Archives</strong> simply store the records as compressed XML documents, each holding a customizable number of records. If your web service publishes 500,000 records by using the ABCD data schema, for example, an ABCD Archive created for that service could hold 500 ABCD documents, each storing 1,000 records. For each schema supported by a BioCASe web service, separate XML archives can be created. You can download a sample ABCD Archive here: [[File:AlgenEngelsSmall_ABCD_2.06.zip]].
The BioCASe Provider Software can create XML archives for each schema supported by a web service. For the ABCD 2.06 and HISPID 5 schemas, the XML Archiving is dataset-aware, that means each dataset published by the web service will end up in a separate archive file. All other schemas (including ABCD 1.2) will result in one single file for a given web service.
<strong>DarwinCore Archives</strong> (DwCAs), in contrast, consist of one or several text files storing the core records and related information, zipped up together with a descriptor file and a metadata document. A detailed specification can be found on the [http://rs.tdwg.org/dwc/terms/guides/text/index.htm TDWG site], a sample archive here: [[File:Desmidiaceae_Engels.zip]].
Information published by web services using the ABCD 2.06 or HISPID 5 schema (dubbed as "ABCD/HISPID dumps") can be stored as DarwinCore Archives. Unsurprisingly, DwCAs make use of the [http://rs.tdwg.org/dwc/terms/index.htm DarwinCore data standard], which is flat and less complex than ABCD 2.06 or HISPID 5. Consequently, a DarwinCore archive will store less information than the corresponding XML archive for a given dataset.
==Managing Archives==
The section <small>Existing Archives</small> allows you download, remove and convert archives or view the log of the archiving process:
[[File:xmlArchivesNew.png|border|775px]]
The archives are grouped by schema, with DarwinCore archives making up an additional group. You can use the minus or plus symbol next to the group header to expand or collapse all files of that group; for web services publishing dozens of datasets, this might be handy to reduce scrolling on the page. The <small>Log </small> link in the group header will open the log file for the respective archiving process in a separate tab.
For each archive file, the number of records stored in this file, the date of creation and the file size are listed. XML archives may have a number printed in the <small>Dropped</small> column, meaning some records have been dropped due to missing mandatory data elements. This doesn't mean the archive is invalid, but you should review the mapping or your source data to find the reasons for these lost records. Clicking the archive name will download the archive file, so it can be saved to disk or opened with an archive viewing tool. Pressing the trash symbol at the very right will delete the archive; if you use the trash symbol in the group header, all archives of this schema/type will be removed.
For ABCD 2.06 and HISPID 5 XML archives, you will see an additional <small>DwC</small> link next to the trash symbol. This allows you to selectively convert a single dataset from XML to DarwinCore format. In contrast to using the <small>Create DwC Archive</small> button described below, this will spare the XML archiving of the whole web service and just create a DarwinCore archive for the selected dataset, which will be significantly faster. If you use the link in the group header, all archives of the schema will be converted (again without triggering XML archiving first).
==XML Archives==
If you’ve finished mapping a schema (see [[ABCD2Mapping]] to learn how to map ABCD, for example) and tested the resulting web service, you can create XML Archives for that web service. To go to the archiving page, simply use the <small>Archive</small> link on the overview page of the datasource setup. If you haven’t mapped a schema, you won’t be able to create any archives. Before archiving, you should always make sure the web service returns correct results by using the QueryForms.
The section <small>Create/Update Archives</small> allows you to create new XML archive(s) for each schema mapped. Simply select the schema and press <small>Create XML Archive</small>. As mentioned above, archiving ABCD 2.06 or HISPID 5 is dataset-aware, resulting in one XML archive per dataset published. For all other schemas, a single archive file will be created.
The paging size specifies how many records will be bundled into one XML document inside the archive; the default 1,000 should be suitable for most cases. Be aware that a BioCASe web service can restrict the number of records per request - if that limit is below the paging size set for archiving, the paging size will be adjusted automatically after the first packet of records was received from the web service.
During the archiving process, the <small>Log</small> will display messages indicating the progress:
[[File:xmlArchivesProgressNew.png|border]]
You can always cancel the archiving process by pressing the <small>Cancel</small> link in the Status/Messages box. However, it will take some time for the cancelling to show effect, namely until the current paging step has been completed. Depending upon the paging size set and the speed of your server, this can be up to one minute.
As the archiving progresses, the first lines of the log will drop out of view. Pressing <small>Show full log</small> will open the full log in a separate browser tab. You can navigate away from the archiving page during the process (or simply close it) and return later. Once finished, the dump will show up in the <small>Existing Archives</small> list, or, if it’s still being processed, as <small>Processing</small> in the Status/Messages box. If the process failed for some reason (or you decided to cancel it), a new box <small>Logs of aborted/failed runs</small> will be displayed with a link for displaying the log file. This will allow you to find out what caused the abortion.
For a given web service, you can only create XML archives for one schema at a time. Even though you can start archiving for several web services of your BioCASe installation in parallel, it is not a good idea. The archiving process will put heavy load on your servers – both the database server for data retrieval and the BioCASe server for creating the XML documents. So it is advisable to create just one archive at a time in order to allow both servers to respond to other requests.
==DarwinCore Archives==
For web services that use the ABCD 2.06 or HISPID 5 schema, all information published by the web service can be stored in DarwinCore Archives. The DarwinCore data standard is less complex than ABCD, so in most cases the DarwinCore Archive will not store all information published by the web service. DarwinCore archives store only one dataset; so as with ABCD 2.06 and HISPID 5 XML archives, DwC-archiving a web service might result in several DarwinCore archives.
DarwinCore archives are not created directly, but from the respective ABCD/HISPID archives. So DwC-archiving a web service will first create ACBD archives, which will be converted into the respective DwC archives subsequently.
===Preparation===
The conversion of ABCD into DwC is done through the Java-based Kettle library. Therefore, you need to have a Java Runtime Environment (version 1.5 or later) installed. You can check this on the library test page under ''Optional external binaries'':
[[File:dwcaJavaTest.png|border|500px]]
If you don't have one, you can get it [http://www.java.com/de/download/ here]. Important: If you're running BioCASe on a 64bit machine, make sure to get a 64bit Java, since this will boost performance considerably.
Once Java is installed, go to the System Administration (<small>Start > Config Tool > System Administration</small>) to check and adapt the conversion settings to your environment:
[[File:dwcaSystemSettings.png|600px]]
'''Java binary:''' If you're sure Java is installed, but the test lib page shows ''not installed'', please provide the full path to the Java binary (for example ''/usr/local/jdk1.6.0/bin/java''). If you have several Java versions installed (for example 32bit and 64bit versions), make sure to point to the correct (preferably 64bit) version.
'''Max memory usage for Java VM (MB):''' This is the maximum amount of heap memory Java will be allowed to use (in MB). The default of 1024 will be sufficient for small datasets (up to 100,000 records). For medium-sized datasets (up to 1m records), you should set this value 2048. For large datasets with millions of records, a value of 4096 is recommended. If your server has enough free memory, you should be generous with this limit - larger values speed up the transformation process on most machines. However, you should make sure to leave enough memory for other required applications on your server.
'''Sort buffer size for transformation (number of rows):''' This is the number of rows kept in memory during sorting steps. The default of 100,000 should be OK for most purposes. If you run into memory problems and cannot increase the memory usage, you can lower this value to 50,000 or even 10,000 (do not enter thousands separators into the box). Even lower values will result in heavy disk usage and poor performance.
===Creating an Archive===
DwC archives can only be created for web services that support either ABCD 2.06 or HISPID 5. For all other schemas, the button <small>Create DwC Archive</small> will be disabled. Creating a DwC archive will always create an ABCD archive first, which will then be transformed into DwC. So any existing ABCD archive will be overwritten with an updated version, and any existing DwC archives will be replaced by new versions.
To start the archiving process, make sure ABCD 2.06 is selected as ''destination schema'' (or HISPID 5, if you're using that) and press <small>Create DwC Archive</small>. This will start the XML archiving process and, once that is successfully finished, the DwC archive transformation. If you've already created an XML archive before, you can skip the XML archiving and convert this file directly by clicking the ''DwC'' link next to the archive name listed under ''Existing Archives''. The XML archiving step and the parameter <small>Paging size</small> are described in detail in the [[Archiving#XML_Archives|XML Archiving section]] above.
During the DwC transformation, the log will display the progress and look similar to this:
[[File:dwcaArchiveProgressNew.png|border]]
You can cancel the transformation process by clicking the <small>Cancel</small> link in the Status/Messages box. When you do this, BioCASe will try to terminate the process. Depending on the operating system and machine characteristics, this can take some time. Please be patient and wait for the message ''Process terminated'' to appear in the status box.
During the process, the first lines of the log output will drop out of view. You can use the <small>Show full log</small> link to open the full log in a separate browser tab. During the conversion process, you can navigate away from the page or close it. When you return and the conversion is still running, you will see the current log output again. If the conversion failed or was cancelled, the log can be viewed from the ''Logs of aborted/failed runs'' box that appears.
If the DwC archiving was successful, the line ''SUCCESS: Conversion finished.'' will be printed at the end of the output. The archive(s) generated will be named after the dataset titles and show up under ''Existing archives'', with links for downloading/removing and for re-opening the log file.
===Trouble Shooting===
If you see the line ''ERROR: The DwC Archive creation failed!'', something went wrong.
When trying to find the error, always have a look at the full log file instead of just the few last lines printed in the log output box. Either use the ''Show full log'' link or the ''Show'' link below ''Logs of aborted/failed runs''. Start reading the log from top to bottom and find the first error (a line starting with ''ERROR''). Once you've solved this first problem, don't pay attention to any follow-up errors, since they might be caused by the first problem. Instead, restart the transformation using the ''DwC'' link of the respective XML archive and see if the problem is gone.
Below are some typical error messages:
<syntaxhighlight>
[Errno 13] Permission denied: 'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\FloraExsiccataBavarica_DwCA_1.0.log'
</syntaxhighlight>
Access is denied for the archiving temp directory. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
ERROR 05-07 17:06:47,374 - Error trying to remove old status file: [Error 5] Access denied: u'C:\\Workspace\\bps2\\archive\\FloraExsiccataBavarica\\duplicate.txt'
ERROR 05-07 17:06:52,372 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Same problem as above, status file ''duplicate.txt'' cannot be removed.
<syntaxhighlight>
INFO 05-07 16:41:14,386 - Starting the transformation engine
INFO 05-07 16:41:14,386 - Java heap space used is 6144M, sort size is 100000
ERROR 05-07 16:41:14,388 - Java process could not be started: [Error 2] Das System kann die angegebene Datei nicht finden
ERROR 05-07 16:41:14,389 - Check the Test libs page to make sure Java is properly installed and configured.
ERROR 05-07 16:41:19,384 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Well - what it reads.
<syntaxhighlight>
INFO 05-07 16:43:42,892 - Starting the transformation engine
INFO 05-07 16:43:42,892 - Java heap space used is 1,024M, sort size is 100000
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Invalid maximum heap size: -Xmx1,024m
INFO 05-07 16:43:42,908 - Transformation ended with return code 1
ERROR 05-07 16:43:47,891 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Please do not use thousands separators or any unit (MB, GB) for the maximum heap space, just a number: ''1024''.
<syntaxhighlight>
...
INFO 05-07 16:50:45,359 - Transformation - Loading transformation from XML file [file:///C:/Workspace/bps2/lib/biocase/archive/abcd2.ktr]
INFO 05-07 16:50:45,610 - DwC Conversion - Dispatching started for transformation [DwC Conversion]
INFO 05-07 16:50:45,668 - DwC Conversion - This transformation can be replayed with replay date: 2012/07/05 16:50:45
INFO 05-07 16:50:45,710 - Get file names - Finished processing (I=0, O=0, R=47, W=47, U=0, E=0)
INFO 05-07 16:50:45,718 - Get parameters - Finished processing (I=0, O=0, R=47, W=329, U=0, E=0)
ERROR 05-07 16:50:55,904 - Sort meta - UnexpectedError:
ERROR 05-07 16:51:16,093 - Sort meta - java.lang.OutOfMemoryError: GC overhead limit exceeded
...
</syntaxhighlight>
Not enough memory. Go to the System Administration page and increase the memory limit (minimum is 512) or reduce the number of rows kept in memory during sorting.
<syntaxhighlight>
...
INFO 05-07 16:57:08,435 - Sort occurrences - Finished processing (I=0, O=0, R=2179, W=2179, U=0, E=0)
ERROR 05-07 16:57:08,438 - Abort - Row nr 1 causing abort : [General], [response.1.xml], [file:///C:/Workspace/bps2/archive/FloraExsiccataBavarica/tmp/response.1.xml], [DwC Archive creation], [Unzip file], [null], [2012/07/05 16:57:04.129], [100000], [C:\Workspace\bps2\archive\FloraExsiccataBavarica], [RBG], [Flora exsiccata Bavarica], [1591], [Preserved Specimen], [], [], [], [520], [], [], [], [Germany], [DE], [Puchheim westlich von München; Hausmullschutt auf Moorboden], [], [], [20.08.1915], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [Flora exsiccata Bavarica], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/tmp/Flora_exsiccata_Bavarica occurrence], [], [C:\Workspace\bps2\archive\FloraExsiccataBavarica/duplicate]
ERROR 05-07 16:57:08,438 - Abort - Duplicate catalog number found.
...
INFO 05-07 16:57:09,762 - Kitchen - Processing ended after 5 seconds.
INFO 05-07 16:57:09,813 - Transformation ended with return code 1
ERROR 05-07 16:57:09,815 - ERROR: The DwC Archive creation failed!
ERROR 05-07 16:57:09,817 - ERROR: Duplicate catalog number "1591" found in the dataset. Please eliminate it, recreate the XML archive and retry.
</syntaxhighlight>
The ABCD archive contained a duplicate catalog number "1591", which would make the DwC archive invalid. Eliminate that from the database, recreate the XML archive and restart the transformation.
<syntaxhighlight>
...
INFO 05-07 16:37:01,677 - Removing old files from download folder
ERROR 05-07 16:37:01,679 - [Error 5] Access denied: u'C:\\Workspace\\bps2\\www\\downloads\\EDIT_ATBI\\EDIT_-_ATBI_in_Borjomi_Kharagauli_Georgia.dwca.zip'
ERROR 05-07 16:37:01,680 - ERROR: The DwC Archive creation failed!
</syntaxhighlight>
Access is denied for the download folder. Use the libs test page (section ''Status of writable directories and files'') to make sure Python has full write privileges to this folder.
<syntaxhighlight>
INFO 05-07 17:55:22,793 - DwC Archive creation - Starting entry [Unzip file]
ERROR 05-07 17:57:03,253 - Unzip file - Error trying to process zipped entry [zip:file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip!/response.142.xml] from file [file:///C:/Workspace/bps2/www/downloads/natureinfo/natureinfo_ABCD_2.06.zip] !
ERROR 05-07 17:57:03,253 - Unzip file - java.io.IOException: Not enough space on volume.
</syntaxhighlight>
During the transformation, the XML archive will be unpacked temporarily. This requires some disk space, which wasn't available in this case.
== Automating Archiving ==
Starting with version 3.3 of the BioCASe Provider Software, archiving can be triggered from outside the configuration tool by using a deep link. This allows for scheduling of the archiving process; for example, an ABCD archive could be created once a month to be harvested by GBIF. Both XML and Darwin Core Archive generation can be triggered; moreover, the status of the archiving engine can be retrieved together with the log of the latest archiving process.
===Usage and Parameters===
Assuming you have a data source called ''pontaurus'' with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, the URL to be used for triggering archiving would be http://localhost/biocase/archiving.cgi?dsa=pontaurus.
The following lists the parameters that can be specified. Only ''dsa'' and ''pw'' are mandatory.
;dsa (Mandatory): Specifies the data source you want to administer.
;pw (Mandatory): Config tool password, either for the whole installation or the data source, if a data source specific password has been set.
;action (Optional): This specifies the task to be done. Can be one of the values ''log'', ''cancel'', ''xml'' and ''dwc'', each with the following meaning:
:{| class="wikitable"
|-
! Value
! Description
|-
| log
| This is the default action. It returns the status of the archiving engine for the given data source and lists the log for the latest archiving process.
|-
| cancel
| Cancels any running archiving process for the given data source. If no process is running, it will do nothing.
|-
| xml
| Starts XML archiving. You can customize the process with the optional parameters ''schema'' and ''filesize''.
|-
| dwc
| Starts XML archiving with subsequent DarwinCore Archive transformation. You can customize the process with the optional parameters ''schema'' and ''filesize''. Remember that Java needs to be installed for DarwinCore Archiving.
|}
;schema (Optional): Data schema that will be used for storing the published records in the archive. The existing schemas for a data source are listed in the <small>Schemas</small> section on the overview page of the data source configuration. Sample values would be ''ABCD_2.06'' and ''HISPID_5'' (note that the trailing .xml must not be included in this parameter). The default schema that will be used is ABCD 2.06 (identified by schema namespace ''http://www.tdwg.org/schemas/abcd/2.06''); so if that’s what you want, there is no need to specify this parameter. Also no need to specify this parameter if only one schema is mapped; BioCASe will use this schema mapping file.
:HISPID 5 users: If several schemas are mapped for the data source and the default schema ABCD 2.06 is not used, BioCASe will try to find a mapping file for HISPID 5 (identified by namespace ''http://www.chah.org.au/schemas/hispid/5''); so if you have HISPID 5 mapped, but not ABCD 2.06, you can also omit this parameter and let BioCASe find the mapping file for you.
;filesize (Optional): Number of records to be stored in a single file of the archive; default is 1,000. If the number of records per request has been limited for the given data source to a value smaller than this, the file size will be adjusted automatically. This parameter corresponds to the paging size that can be set on the archiving page.
===Return values of the script===
;For action ''cancel'': The script will return a message once the process has been cancelled successfully: ''Process cancelled.''
;For action ''log'': The log returned will look similar to this:
<pre>
Idle.
Below you'll find the log of the latest archiving process.
************************************************************************************************************************
INFO 02-10 11:51:49,527 - Starting the transformation engine
INFO 02-10 11:51:49,527 - Java heap space used is 6144M, sort size is 100000
INFO 02-10 11:51:55,299 - Using "C:\Workspace\bps2\archive\BoBO\tmp\vfs_cache" as temporary files store.
INFO 02-10 11:51:55,439 - Kitchen - Start of run.
INFO 02-10 11:51:55,533 - DwC Archive creation - Start of job execution
(snipped)
Below you'll find the log of the corresponding XML archiving process.
************************************************************************************************************************
INFO 02-10 11:51:47,951 - Archive file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip
INFO 02-10 11:51:47,951 - Query file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.query.xml
INFO 02-10 11:51:47,951 - Config file: C:\Workspace\bps2\archive\BoBO\BoBO_ABCD_2.06.zip.config.xml
INFO 02-10 11:51:47,951 - Datasource: BoBO
INFO 02-10 11:51:47,951 - Download folder: C:\Workspace\bps2\www\downloads\BoBO
INFO 02-10 11:51:47,951 - Wrapper URL: http://localhost/biocase/pywrapper.cgi?dsa=BoBO
INFO 02-10 11:51:47,951 - Ticket: 80f2963d09b8e9deb6c8f667262df0b9
INFO 02-10 11:51:47,951 - Limit: 1000
INFO 02-10 11:51:47,967 - Requesting records 1 - 1000
INFO 02-10 11:51:48,497 - Hits: 9
INFO 02-10 11:51:48,497 - Count: 9
INFO 02-10 11:51:48,497 - Dropped: 0
INFO 02-10 11:51:48,497 - Status: ok
INFO 02-10 11:51:48,497 - Message: response.1.xml stored in archive BoBO_ABCD_2.06.zip
INFO 02-10 11:51:49,511 - SUCCESS: Archiving finished.
</pre>
;For actions ''xml'' and ''dwc'': If an archiving process has been started successfully, it will not return any result and time out eventually. For these actions, use separate ''log'' requests to find out about the progress of the process.
;Possible error messages: The script will return an error message if the requested action cannot be performed. Below you’ll find the possible errors returned:
:*''Invalid Datasource given!''
:*''The specified datasource doesn't have any schemas mapped!''
:*''The specified schema mapping doesn't exist for this datasource!''
:*''No password provided!''
:*''Authentication failed!''
:*''Unrecognized value for parameter action. Only 'log', 'xml', 'dwc' and 'cancel' are allowed.''
:*''DarwinCore archives can only be created for the ABCD 2.06 and HISPID 5 schemas, so make sure the datasource supports one of these. If you don't specify a schema in the request, BioCASe will try to use ABCD 2.06, otherwise HIDPID 5.''
===Examples===
Assuming you have a data source called pontaurus with the access point http://localhost/biocase/pywrapper.cgi?dsa=pontaurus, valid requests would be
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo: for returning the status of the archiving engine for data source pontaurus (Idle/Running) and the log for the latest archiving process.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml: to start XML archiving for any existing ABCD 2.06 mapping with default file size (1000).
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=xml&filesize=500&schema=HISPID_5: to start XML archiving for HIDPID 5 with filesize=500.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=dwc: to start XML archiving for any existing ABCD 2.06 mapping; after that has finished, this ABCD archive will be converted into DwC archives.
;http://localhost/biocase/archiving.cgi?dsa=pontaurus&pw=foo&action=cancel: to cancel any running XML or DwC archiving process.
== Discovery of Archives ==
Archives available for a given data source can be discovered through the so-called dataset inventory. To get this, just append ''&inventory=1'' to the access URL of the data source, for example http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar&inventory=1.
The dataset inventory response looks roughly like this (diagnostic messages have been removed for brevity):
<syntaxhighlight lang="XML">
<dsi:inventory xmlns:dsi="http://www.biocase.org/schemas/dsi/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.biocase.org/schemas/dsi/1.0 http://www.bgbm.org/biodivinf/schema/dsi_1_0.xsd">
<!--XML generated by BioCASE PyWrapper software version 3.6.4. Made in Berlin.-->
<dsi:status>OK</dsi:status>
<dsi:created>2017-11-01T10:58:38.109000</dsi:created>
<dsi:service_url>http://ww3.bgbm.org/biocase/pywrapper.cgi?dsa=Herbar</dsi:service_url>
<dsi:datasets>
<dsi:dataset>
<dsi:title>Herbarium Berolinense</dsi:title>
<dsi:id>Herbarium Berolinense</dsi:id>
<dsi:archives>
<dsi:archive filesize="20187103" modified="2017-04-20T12:59:33.810767" namespace="http://www.tdwg.org/schemas/abcd/2.06" rcount="206223">http://ww3.bgbm.org/biocase/downloads/Herbar/Herbarium%20Berolinense.ABCD_2.06.zip</dsi:archive>
<dsi:archive filesize="12373841" modified="2017-04-20T13:16:03.772798" rcount="206223" rowType="http://rs.tdwg.org/dwc/terms/Occurrence">http://ww3.bgbm.org/biocase/downloads/Herbar/Herbarium%20Berolinense.DwCA.zip</dsi:archive>
</dsi:archives>
</dsi:dataset>
</dsi:datasets>
<dsi:diagnostics>
...
</dsi:diagnostics>
</dsi:inventory>
</syntaxhighlight>
The dataset inventory will list all datasets published by a given data source, each with its title and ID. If archives exist for this dataset, they will be listed in ''archives'', each ''archive'' element storing the URL for the respective file. For XML archives, the attribute ''namespace'' will store the namespace of the schema, for DarwinCore archives there will an attribute ''rowType'' with the value <nowiki>http://rs.tdwg.org/dwc/terms/Occurrence</nowiki>. The attribute ''rcount'' specifies the number of records stored in the archive file, ''filesize'' and ''modified'' are hopefully self-explanatory.
You can also view the dataset inventory using the manual QueryForm: Scroll down to the section ''Configuration Info'' and click on the link ''Inventory''. After a second, it will appear in the text box below.
de96d2cf2669b5467d3783b0b9cad77788839d3f
Main Page
0
1
1070
395
2018-10-01T09:18:04Z
JoergHoletschek
3
/* Table of Contents */
wikitext
text/x-wiki
This is the Documentation Wiki of the BioCASe Provider Software. Here you will find tutorials on how to install, configure and debug the BioCASe Provider Software. More detailed information on BioCASe can be found in the [[BeginnersGuide|Beginner's Guide]] and on the [http://www.biocase.org/whats_biocase BioCASe homepage].
[[Image:BioCASeLogoLarge.jpg|link=http://www.biocase.org|150px|right|BioCASe]]Described in one paragraph, the BioCASe Provider Software is an XML data binding middleware for publishing data from a relational database to an information network. It is agnostic of the data model used for data publication and can be used in conjunction with any conceptual schema. However, its main field of application is the publication of occurrence data from specimen or observational databases to primary biodiversity information networks such as the BioCASe network (http://www.biocase.org) and the Global Biodiversity Information Facility (http://www.gbif.org). After installing BioCASe and configuring it for a given database, the published information will be accessible as a BioCASe web service, which means it can be retrieved with BioCASe protocol requests.
== BioCASe Support ==
[[Image:mail.png|link=Special:Contact|150px|right|BioCASe Support]]
Please get in contact with the BioCASe Support if you
* have any questions concerning BioCASe in general or the installation/configuration of the Provider Software,
* want to file a bug report,
* have any comments, or
* want to make a suggestion for a useful new feature in upcoming versions.
You can either
* use the ''Discussion'' tab of each page to leave us a comment,
* use the form on the [[Special:Contact|Contact page]] to send us a message,
* or directly mail us to the address given on the [[Special:Contact|Contact page]].
== Table of Contents ==
;[[BeginnersGuide|Beginner's Guide]]: What the Provider Software is all about.
;[[Preparation]]: Things to be considered when publishing a database with BioCASe and potential preparatory steps needed.
[[Image:support_stamp.png|link=Special:Contact|200px|right|BioCASe Support]]
;[[Installation]]: Tutorial on how to install the BioCASe Provider Software.
;[[DatasourceSetup|Datasource Setup]]: How to set up a new BioCASe web service (aka data source).
;[[ABCD2Mapping|ABCD2 Mapping]]: Tutorial on mapping ABCD2.
;[[CommonABCD2Concepts|Common ABCD2 Concepts]], [[ABCD2Concepts|ABCD2 Concepts]]: List of mandatory, recommended and commonly used ABCD2 elements.
;[[SampleABCDDocument|Sample ABCD2 Document]]: Example ABCD2 document of a comprehensively mapped data provider.
;[[Debugging|Debugging Tutorial]]: Instructions on how to debug a BioCASe web service.
;[[Archiving]]: Learn how to create ABCD Archives or DarwinCore Archives of your published data.
;[[Glossary|Glossary]]: List of terms and abbreviations used in this documentation.
;[[FAQ|FAQ]]: List of frequently asked questions and hopefully helpful answers.
;[[VersionHistory|Version History]]: Change list of current and past versions of the BioCASe Provider Software.
b3ce55794fc8dad1ff5e25fc948c799782f2085a
MediaWiki:Sidebar
8
3
1071
396
2018-10-01T09:21:47Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Archiving|Archiving
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** ABCD2Concepts|Incomplete ABCD2 Doc
** SampleABCDDocument|Sample Document
* Feedback
** Special:Contact|Contact Us
b7380dd285b97db9db3dcf974c727042e9995f26
1072
1071
2018-10-01T09:22:14Z
JoergHoletschek
3
wikitext
text/x-wiki
* Table of Contents
** mainpage|mainpage-description
** BeginnersGuide|Beginner's Guide
** Preparation|Preparation
** Installation|Installation
** DatasourceSetup|Datasource Setup
** ABCD2Mapping|ABCD Mapping
** Debugging|Debugging
** Archiving|Archiving
** Glossary|Glossary
** FAQ|FAQ
* ABCD 2.06
** CommonABCD2Concepts|Common Elements
** ABCD2Concepts|Incomplete Documentation
** SampleABCDDocument|Sample Document
* Feedback
** Special:Contact|Contact Us
122e9fc0e4dc2fc7b5443fd0fbf1320e1d9bf7b8
ABCD2Concepts
0
115
1073
1063
2018-10-01T09:25:20Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [http://tdwg.github.io/dwc/terms/index.htm#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
5a87e51baddc70225e2042e905deba323d60fcbc
1079
1073
2019-02-18T11:00:03Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C(urrent)
|The current status of the accession in the garden (current or not current).
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
3b4041ccb8969d4b222e20914fb29d4609d8e33a
1080
1079
2019-04-02T08:21:15Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Whole plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
2f9865e35fd705fefd09ade9debfbd61faa29b9a
1082
1080
2019-04-18T15:08:08Z
JoergHoletschek
3
/* General unit data */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
62fde93dc3a5f8f0b8b132c884836be2e0ff5170
1083
1082
2019-04-18T15:56:58Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|AccessionDate
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|AccessionNumber
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
ec9dfd553098b7477fba9f7a7f82165d970ff67e
1084
1083
2019-04-18T16:02:46Z
JoergHoletschek
3
/* SpecimenUnit/Accessions */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|C
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
fe7ab25c7e3ddcd0536087921820108162c32762
1085
1084
2019-04-18T16:03:00Z
JoergHoletschek
3
/* SpecimenUnit/Accessions */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
13c3b02adf6eb75cc351e5aa4b9631c8f83a3a6e
1099
1085
2020-04-08T10:27:40Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag).
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
2af04a76eb48f839cceb0737301435371bffa79d
1100
1099
2020-04-08T10:36:08Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''[[Note for Gardens4Science data providers:]]''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
4310e8db2b86aa8b9b5d2e13d7efe7ee6e53f3cc
1101
1100
2020-04-08T10:36:30Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for Gardens4Science data providers:''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
a1e0a2200ade478a1efd696cddc64a9acdd043e5
1102
1101
2020-04-08T14:07:16Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for Gardens4Science data providers:''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
752967e403cc66fb5ec14dbd7e4c9f954f107acf
1107
1102
2021-02-01T10:34:38Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
|
* no hybrid: <empty>
* named hybrid: *
* graft chimaera: +
* any other type of hybrid: "hybrid"
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for Gardens4Science data providers:''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
b069b3a875ab98f490e2f22d13108fd369e71cc5
1108
1107
2021-02-01T10:36:15Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
|
* no hybrid: <empty>
* named hybrid: *
* graft chimaera: +
* any other type of hybrid: "hybrid"
|Indicates the type of hybrid (if appropriate).
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for Gardens4Science data providers:''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
6df35e715bb0aa10f86fc8b29501f269079fc15c
1109
1108
2021-02-01T10:37:15Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| *
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: *
* graft chimaera: +
* any other type of hybrid: "hybrid"
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for Gardens4Science data providers:''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
82257609891f745ed5914de9480565e03b09032c
1110
1109
2021-02-01T10:39:14Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| *
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: * (Unicode U+00D7)
* graft chimaera: +
* any other type of hybrid: "hybrid"
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for Gardens4Science data providers:''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
ca03e18b64e510672be0358f600b808d517f31de
1111
1110
2021-02-05T15:09:36Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| x
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: x (Unicode U+00D7)
* graft chimaera: +
* any other type of hybrid: "hybrid"
gardens4science providers should also see the nores below.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for Gardens4Science data providers:''' Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org Gardens4Science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
a86f602ce0977da4c4c28ca859d7ddaca2f15bdc
1112
1111
2021-02-05T15:14:46Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| x
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: x (Unicode U+00D7)
* graft chimaera: +
* any other type of hybrid: "hybrid"
gardens4science providers should also see the notes below.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for gardens4Science data providers:'''
# Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org gardens4science data portal] (that is, without being logged in) is determined by the value of the DonorCategory field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
# Use''HybridFlag'' in addition to the correct [https://www.bgci.org/files/Databases/itf2.pdf nomenclature of hybrid or graft chimera names] in ''fullScientificName'' (e.g. ''xDisoselenicereus fulgidus (Hook.f.) E.Meier''; ''Epiphyllum x floribundum Kimnach''; ''+Crataegomespilus potsdamiensis''; ''Echinopsis hybrid''). The https://terms.tdwg.org/wiki/abcd2:TaxonIdentified-HybridFlag-@insertionpoint does not need to be mapped/filled and can be ignored (value will be taken from fullScientificName).
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
30f16ef7e4ea31a1f7aae1eeb876f438cd9464a6
1113
1112
2021-02-05T15:15:30Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| x
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: x (Unicode U+00D7)
* graft chimaera: +
* any other type of hybrid: "hybrid"
gardens4science providers should also see the notes below.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for gardens4Science data providers:'''
# Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org gardens4science data portal] (that is, without being logged in) is determined by the value of the ''DonorCategory'' field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
# Use''HybridFlag'' in addition to the correct [https://www.bgci.org/files/Databases/itf2.pdf nomenclature of hybrid or graft chimera names] in ''fullScientificName'' (e.g. ''xDisoselenicereus fulgidus (Hook.f.) E.Meier''; ''Epiphyllum x floribundum Kimnach''; ''+Crataegomespilus potsdamiensis''; ''Echinopsis hybrid''). The https://terms.tdwg.org/wiki/abcd2:TaxonIdentified-HybridFlag-@insertionpoint does not need to be mapped/filled and can be ignored (value will be taken from fullScientificName).
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
acd170ee4e0e4cd96d10b8047d690b00021e4a27
1114
1113
2021-02-05T15:15:46Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| x
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: x (Unicode U+00D7)
* graft chimaera: +
* any other type of hybrid: "hybrid"
gardens4science providers should also see the notes below.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for gardens4Science data providers:'''
# Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org gardens4science data portal] (that is, without being logged in) is determined by the value of the ''DonorCategory'' field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
# Use ''HybridFlag'' in addition to the correct [https://www.bgci.org/files/Databases/itf2.pdf nomenclature of hybrid or graft chimera names] in ''fullScientificName'' (e.g. ''xDisoselenicereus fulgidus (Hook.f.) E.Meier''; ''Epiphyllum x floribundum Kimnach''; ''+Crataegomespilus potsdamiensis''; ''Echinopsis hybrid''). The https://terms.tdwg.org/wiki/abcd2:TaxonIdentified-HybridFlag-@insertionpoint does not need to be mapped/filled and can be ignored (value will be taken from fullScientificName).
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
47c3eaf6e00ff76438b94d33ef73aff4a23d3797
1115
1114
2021-02-05T15:16:33Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| x
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: x (Unicode U+00D7)
* graft chimaera: +
* any other type of hybrid: "hybrid"
gardens4science providers should also see the notes below.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for gardens4Science data providers:'''
# Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org gardens4science data portal] (that is, without being logged in) is determined by the value of the ''DonorCategory'' field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
# Use ''HybridFlag'' in addition to the correct [https://www.bgci.org/files/Databases/itf2.pdf nomenclature of hybrid or graft chimera names] in ''fullScientificName'' (e.g. ''xDisoselenicereus fulgidus (Hook.f.) E.Meier''; ''Epiphyllum x floribundum Kimnach''; ''+Crataegomespilus potsdamiensis''; ''Echinopsis hybrid''). The https://terms.tdwg.org/wiki/abcd2:TaxonIdentified-HybridFlag-@insertionpoint does not need to be mapped/filled and can be ignored (value will be taken from ''fullScientificName'').
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
ed7d4d08e603eab943347f667b1867707b064143
1116
1115
2021-02-05T15:17:09Z
JoergHoletschek
3
/* Botanical Garden Unit */
wikitext
text/x-wiki
This page provides an overview of the most commonly used ABCD elements with short explanations and sample values. If you're looking for a complete list of ABCD elements, please refer to the full documentation at the [https://terms.tdwg.org/wiki/ABCD_2 ABCD Wiki].
Mandatory fields are marked with an asterisk. If you don't provide them, the element - and potentially non-mandatory sibling/parental elements - will be removed from the ABCD document.
==Metadata==
Metadata describe the dataset as whole - as opposed to individual specimens/observations.
=== General metadata ===
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="4" | ContentContact*
|Name*
|John Doe
|rowspan="4" | Contact information for the curator of the dataset.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|rowspan="4" | TechnicalContact*
|Name*
|John Doe
|rowspan="4" | Contact information of the person that is responsible for the BioCASe installation - in most cases, this will be the IT department.
|-
|Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|-
|Email
|john.doe@acme.com
|-
|Phone
| +49 30 838 99999
|-
|Metadata
|IconURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|Link to an image that represents the dataset.
|-
|rowspan="2" | Metadata/RevisionData*
|DateCreated
|2018-07-19
|rowspan="2" | Date when the dataset has been first published (DateCreated) and of the last changes/additions/removals (DateModified).
|-
|DateModified*
|2018-09-27
|-
|rowspan="3" | Metadata/Version
|DateIssued
|2018-09-27
|rowspan="3" | If you keep track of dataset versions, the info can be specified in this section.
|-
|Major*
|3
|-
|Minor
|1
|-
|rowspan="4" | Metadata/Description/Representation*
|Title*
|Herbarium Berolinense
|rowspan="4" | Short description of the dataset (preferrably in english), consisting of a title, a 2-3 sentences long description and an optional URL.
|-
|@language*
|en
|-
|Description
|The herbarium of the Botanic Garden and Botanical Museum Berlin-Dahlem (herbarium acronym: B) is ...
|-
|URL
|https://www.bgbm.org/en/herbarium
|-
|rowspan="7" | Metadata/Owners/Owner
|Addresses/Address
|Botanic Garden and Botanical Museum Berlin. Königin-Luise-Str. 6-8; 14195 Berlin, Germany
|rowspan="7" | Institution that owns the dataset.
|-
|EmailAddresses/EmailAddress
|john.doe@acme.com
|-
|TelephoneNumbers/TelephoneNumber
| +49 30 838 99999
|-
|URIs/URL
|https://www.bgbm.org
|-
|LogoURI
|http://ww3.bgbm.org/providerResources/BGBM.jpg
|-
|Organisation/Name/Representation/Text*
|Botanic Garden and Botanical Museum Berlin-Dahlem
|-
|Organisation/Name/Representation/Abbrevation
|BGBM
|}
=== IPR Statements ===
The section ''Metadata/IPRStatements'' contains several sub-sections that allow to provide IPR (intellectual property rights) statements. Each sub-section contains the mandatory element ''Text'' for the statement and the optional elements ''Details'' and ''URI'' for delivering more details and/or a link to a web page mit more information. The seven sections are as follows:
{| class="wikitable"
!Section
!Example
!Remark
|-
|Acknowledgements
|The project was funded by the German Federal Ministry of Education and Research (BMBF)
|A free text acknowledging support for the dataset (e.g. grant money, help, permission to reuse published material, etc.).
|-
|Citation
|Röpert D. (ed.) 2000+ [continuously updated]: Digital specimen images at the Herbarium Berolinense. - Published at http://ww2.bgbm.org/herbarium/default.cfm [accessed dd Mmm yyyy].
|Citation guidline for using the data in publications.
|-
|Disclaimer
|No responsibility is accepted for the accuracy of the information in this database.
|A disclaimer statement for the dataset (e. g. concerning responsibility for data quality or legal implications).
|-
|License
|Creative Commons 1.0 Public Domain Dedication waiver
|The license for using the data; we suggest one of the Creative Commons licenses that can be found at [https://creativecommons.org/licenses/ here].
|-
|TermsOfUse
|Textual metadata on specimens from the Herbarium Berolinense (B) are released under the Creative Commons 1.0 Public Domain Dedication waiver.
|Terms for using the published data.
|-
|}
'''Note:''' If you publish your data to GBIF, you are required to specify a license in the ''License'' node with the ''language'' attribute and the elements ''Text'' and ''URI''. The latter should contain a link to a well-defined license, for example https://creativecommons.org/publicdomain/zero/1.0/. More details on GBIF licensing can be found [http://www.gbif.org/terms/licences here].
==Specimen Data==
In ACBD terminology, a single specimen/observation is called a ''Unit''; for each specimen, one ''Units/Unit'' will be created. Below you'll find the most commonly used ABCD elements in this sub-tree.
===General unit data===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|SourceID*
|Herbarium Berolinense
|The name or code of the data source.
|-
|SourceInstitutionID*
|B
|The unique identifier (code or name) of the institution holding the original data source.
|-
|UnitID*
|B -W 08738 -01 0
|A unique identifier for the unit record within the data source.
|-
|UnitGUID
|http://herbarium.bgbm.org/object/BW08738010
|A globally unique identifier for the unit record.
|-
|CollectorsFieldNumber
|765/10
|The original number assigned to the unit by the collector or observer.
|-
|RecordBasis
|LivingSpecimen
|An indication of what the unit record describes; needs to comply with a [https://dwc.tdwg.org/terms/#basisOfRecord controlled vocabulary].
|-
|KindOfUnit
|Seed; (whole) plant
|Part(s), physical state, or class of materials represented by this specimen.
|-
|Sex
|Male
|Sex of the unit.
|-
|RecordURI
|http://herbarium.bgbm.org/object/BW08738010
|The web address of the page where more information on this particular unit record can be found.
|-
|Notes
|Specimen examined in a review of the genera of the tribe Eupatorieae, R. M. King & H. Robinson 1968-1969
|A free text description of the unit. Any notes that do not fit elsewhere.
|-
|DateLastEdited
|2009-030-7
|The date of the creation of or last change to this unit record.
|-
|LastEditor
|John Doe
|The name or other indication of the person or team that created or last edited this record.
|-
|}
===Gathering event===
The ''Gathering'' subsection of ABCD covers all details about the gathering site and the gathering agents. All the follwing groups and elements are located in ''Units/Unit/Gathering''.
{| class="wikitable"
!Group
!Element
!Example
!Remark
|-
|rowspan="2" | Agents
|GatheringAgentsText
|Scholz, Sipman
|A free text representation or concatenated version of those responsible for collecting or recording. In case of a gathering team, it is advised not to provide a concatenated text of the collectors, but individual gathering agents (see below).
|-
|GatheringAgent/AgentText
|Sipman
|Name of an individual gathering agent. The element ''GatheringAgent'' is repeatable, so it can be provided several times in case of a gathering team.
|-
|rowspan="4" | Altitude
|MeasurementOrFactText
|1500-1600m
|Use this element if you have the altitude stored as a free text, that is as a single, concatenated text. If the boundaries of a range are stored as separate values in your database, use the ''MeasurementOrFactAtomised'' elements below.
|-
|MeasurementOrFactAtomised/LowerValue*
|1500
|The lower or only value of the gathering site altitude.
|-
|MeasurementOrFactAtomised/UpperValue
|1600
|The upper value for the measured gathering site altitude, if there is a range.
|-
|MeasurementOrFactAtomised/UnitOfMeasurement
|m
|The unit of measurement used to measure the gathering site altitude.
|-
|rowspan="2" | Country
|ISO3166Code
|US
|ISO code of the country where the voucher was collected/observed.
|-
|Name*
|United States of America
|Name of the gathering country.
|-
|rowspan="3" | DateTime
|DateText
|August 2012
|Date when voucher was collected if it doesn't conform to a specific date format and is stored just as a freet text.
|-
|ISODateTimeBegin
|2012-08-17
|Gathering date in ISO format. If you want to provide a time span, this will be the start of the time span.
|-
|ISODateTimeEnd
|2012-08-19
|End datetime (in ISO format) if the gathering covers a time span.
|-
|
|LocalityText
|Landkreis Neustrelitz, Feldberger Seengebiet, Carwitz, ca. 1 km SW von Carwitz.
|The original gathering locality data as appearing on a label or in an original entry, as a text string. This field should be transcribed verbatim from the specimen label.
|-
|rowspan="2" | NamedArea
|AreaName
|Europe
|Any geographic term that is neither a country (use ''Country'' element) nor the exact locality description (use ''LocalityText'').
|-
|AreaClass
|Continent
|Type of geographic term provided in ''AreaName''
|-
|Biotope
|Text
|Amongst rocks and stones, calcareous soil and screes
|Gathering site biotope description.
|-
| -
|AreaDetail
|
|A free text description of further details pertaining to the observation, sampling, or collection locality which which did not fit into the one of the other elements.
|-
|rowspan="8" | SiteCoordinateSets/ SiteCoordinates/ CoordinatesLatLong
|../CoordinateMethod
|Inferred map reference
|Method of coordinates determination (GPS vs. inferred from description).
|-
|LatitudeDecimal
|52.49179
|Latitude in decimal degrees.
|-
|LongitudeDecimal
|13.23589
|Longitude in decimal degreed.
|-
|CoordinatesText
|52°30' N 13°23' E
|An alternative concatenated text representation of the lat/lon coordinates if they can't be provided as separate lat/lon values.
|-
|SpatialDatum
|WGS 84
|A mathematical surface on which the mapping and coordinate system used for the geocodes of the gathering site are based.
|-
|CoordinateErrorDistanceInMeters
|500
|An estimate of how tightly the collecting locality was specified, expressed as a distance in meters corresponding to a radius around the lat/long coordinates.
|-
|AccuracyStatement
|Coordinates rounded to 2 decimal places.
|A free text statement of the degree of accuracy of the latitude and longitude coordinates.
|-
|CoordinateErrorMethod
|Maximum error defined by dimensions of original ordinance survey map.
|Verbatim statement of how the Coordinate Error was determined.
|-
| -
|Notes
|
|Further text relating to the gathering event that does not fit one of the specified elements.
|-
|}
===Identification history===
Most specimen databases record the complete determination or identification history of a single specimen. ABCD allows to provide this complete history; each determination becomes an ''Identifications/Identification'' subtree.
{| class="wikitable"
!Group
!Subgroup
!Element
!Example
!Remark
|-
| -
| -
|PreferredFlag
|1
|The currently preferred determination should be marked with ''1'' or ''True'', historic determinations with ''0'' or ''False''.
|-
|Date
| -
|DateText/ISODateTimeBegin
|2018-08-17
|Date of the unit identification event. If in ISO format, use ''ISODateTimeBegin'', ''DateText'' otherwise.
|-
|rowspan="2" | Identifiers
| -
|IdentifiersText
|Humboldt & Bonpland
|Text indicating the person, person team, or organisation that made the identification. If it is a team, individual ''Identifier'' subtrees should be provided, if possible (see below).
|-
|Identifier/PersonName
|FullName
|Humboldt
|Person that made the identification.
|-
|rowspan="9" | Result/TaxonIdentified
|rowspan="2" | HigherTaxa/HigherTaxon
|HigherTaxonName*
|Asteraceae
|Name of the higher taxon. Please have a look at the BioCASE Wiki for how to prepare your database for the [http://wiki.bgbm.org/bps/index.php/Preparation#Repeatable_Elements_in_ABCD repeatable elements]
|-
|HigherTaxonRank
|familia
|Rame of the higher taxon.
|-
|ScientificName
|FullScientificNameString*
|Aaronsohnia factorovskyi Warb. & Eig. var. factorovskyi
|Complete name of the taxon including Authors (and years for animals).
|-
|rowspan="5" | ScientificName/NameAtomised/Botanical
|GenusOrMonomial
|Aaronsohnia
|rowspan="5" | ABCD has several container for NameAtomised, it depens on your sampes which one to choose (Botanical or Zoology etc.)
|-
|FirstEpithet
|factorovskyi
|-
|InfraspecificEpithet
|factorovskyi
|-
|Rank
|var.
|-
|AuthorTeam
|Warb. & Eig.
|-
| -
|NameComments
|
|Free text comments related to the name identified for the unit.
|-
|rowspan="2" | References/Reference
|rowspan="2" | -
|TitleCitation
|Ralfs, J: The British Desmidieae, London 1848
|rowspan="2" | A reference (e.g. an article or monograph) that was used as the base for the identifier's taxon identification (e.g. by means of providing a key or a description of the taxon).
|-
|CitationDetail
|p. 22 + 226, 35 pl.
|-
| -
| -
|Notes
|Invalid publication as: Echinella rotata Greville in W.J. Hooker 1833: British Flora Vol II, pp. 432, London, p.398
|Supplementary remarks about the unit identification.
|-
|}
===Botanical Garden Unit===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionStatus
|C
|The current status of the accession in the garden. Possible values are
* C (current accession in the living collection)
* D (non-current due to death)
* T (non current due to transfer to another record system, normally another garden)
* S (stored in a dormant state)
* O (other accession status - different from those above)
|-
|Cultivation
|
|Allows for cultivation information to be passed as free text in order to help the receiving garden care for the transferred accession or to record the garden's experience made with this accession.
|-
|DonorCategory
|E
|A code to indicate the type of the immediate donor from which the accession was obtained. This may not necessarily be the original collector of wild material. One or more of the following characters: E, G, B, R, S, U, H, M, N, I, O, U. For a description of these values, please refer to https://www.bgci.org/files/Databases/itf2.pdf, section E.5 (donor type flag). Gardens4Science data providers should also see the note below.
|-
|Hardiness
|1
|A flag indicating that the accession is grown outdoors in the botanical garden.
|-
|HybridFlag
| x
|Indicates the type of hybrid (if appropriate), according to
* no hybrid: <empty>
* named hybrid: x
* graft chimaera: +
* any other type of hybrid: "hybrid"
gardens4science providers should also see the notes below.
|-
|IPEN
|XX-0-HEID-3253
|A unique number given to plant materials accessioned in conformance with the rules of the International Plant Exchange Network.
|-
|LocationInGarden
|MD4
|The current location of the living plant in the botanical garden.
|-
|Perennation
|
|A code to indicate the means of perennation.
|-
|PlantingDate
|2007-07-07
|The date in ISO format the plant was planted at its current location in the botanical garden.
|-
|}
'''Note for gardens4Science data providers:'''
# Whether or not a given record will be visible in the public view of the [http://gardens4science.biocase.org gardens4science data portal] (that is, without being logged in) is determined by the value of the ''DonorCategory'' field: Records "O = other" will be visible only for logged-in curators; if the field is filled with "I = individual" or empty, the record will also show up for unregistered users.
# Use ''HybridFlag'' in addition to the correct [https://www.bgci.org/files/Databases/itf2.pdf nomenclature of hybrid or graft chimera names] in ''fullScientificName'' (e.g. ''xDisoselenicereus fulgidus (Hook.f.) E.Meier''; ''Epiphyllum x floribundum Kimnach''; ''+Crataegomespilus potsdamiensis''; ''Echinopsis hybrid''). The https://terms.tdwg.org/wiki/abcd2:TaxonIdentified-HybridFlag-@insertionpoint does not need to be mapped/filled and can be ignored (value will be taken from ''fullScientificName'').
===SpecimenUnit/Accessions===
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|AccessionCatalogue
|
|Identifier of an accessions catalogue or numbering scheme
|-
|AccessionDate
|2007-07-07
|Date on which the accession was recorded
|-
|AccessionNumber
|001010680
|Institutional number applied to an accession and recorded in the accessions register.
|-
|}
===Multimedia===
For providing links to associated images, videos and sounds, the sub-tree ''MultimediaObjects'' can be used. Each ABCD unit can have multiple multimedia objects, each represented by its own ''MultimediaObject'' with the following elements:
{| class="wikitable"
!ABCD element
!Example
!Remark
|-
|FileURI*
|http://ww2.bgbm.org/herbarium/images/B/-W/14/61/B_-W_14616%20-00%200.jpg
|The Universal Resource Identifier (URI) of the underlying multimedia file.
|-
|ProductURI
|http://ww2.bgbm.org/herbarium/view_biocase.cfm?SpecimenPK=726
|The Universal Resource Identifier of an electronic source of a multimedia object including HTML, Javascript or similar means delivering rendered output.
|-
|Comment
|Image of herbarium specimen E00732880 by Specimen Digitisation Pipeline.
|Short description of the multimedia object.
|-
|Format
|image/jpeg
|A code or descriptive term for the file or object format.
|-
|FileSize
|2365
|The size in Kb of the file referred to by the URI or filename for the multimedia object.
|-
|Creator
|Paris, Museum National d'Histoire Naturelle, OD
|The identifier (e.g. name or other id) of personnel who has taken the image.
|-
|CreatedDate
|2012-07-07
|The date the multimedia object was created.
|-
|ID
|22658
|Identifier for the multimedia object relating to or forming the unit. This may be a filename.
|-
|IPR
|
|Intellectual Property Rights relating specifically to the multimedia object. This subtree has the same elements as ''Metadata/IPRStatements''. Fore more details, see the respective [[ABCD2Concepts#General_metadata | remarks]].
|-
|}
49d376c3a9bda48d9641f979f78356cf30bb9e3f
VersionHistory
0
23
1074
981
2018-10-02T11:23:51Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c93844b526f9870960b4386e2671ec8bb5886532
1075
1074
2019-01-16T11:55:12Z
JoergHoletschek
3
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for Local Query Tool (Error page not displayed properly)
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1f3aaaab02da1ecf0f2a0502db12999541f109d8
1076
1075
2019-01-16T12:36:50Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** Bugfix for SSL handshake error if HTTPS is used.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3b9f1251d6ec822fedd46980cb9be0d04f222efa
1077
1076
2019-01-16T12:37:29Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** Bugfix for SSL handshake error on certain installations if HTTPS is used.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c7ac00f73c6a18ca740103677276fe788a20895b
1078
1077
2019-01-16T12:47:30Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** Bugfix for SSL handshake error on certain installations if HTTPS is used.
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
0a0ad5ba3d8a45f24b270ead1f9cb8ec31f4e743
1081
1078
2019-04-16T14:34:14Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** Bugfix for SSL handshake error on certain installations if HTTPS is used.
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3e4f4bf0548cee91c2c62102cd3304a49187d98c
1086
1081
2019-05-02T10:47:48Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
cd167beb3bc7ca55ce48a3da053107f2059b49bd
1087
1086
2019-05-15T15:34:38Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
bda7721a438d1fc4fe97592895453b4bcf96f9df
1088
1087
2019-07-10T07:37:04Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1dae9856039d5186c3a9ea5e9b52468aafe14834
1089
1088
2019-07-10T07:38:53Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
51717a3a914e39d1b459750272268b2c675687d6
1090
1089
2019-08-20T10:19:02Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b513c6811674cc0d402fe6ed44a198259b27fe2c
1091
1090
2019-08-21T08:42:45Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
32c97655e447af2c69b36106040bc447a705122b
1092
1091
2019-09-23T09:44:00Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If colum retrieval is not available, potential dots are removed from column names, since they're not allowed.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c8f1786a608e78fdc49f59d6ab015e9451acaa84
1093
1092
2019-11-18T11:55:35Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
91f69d3439abe2dc69e018de09bf7db4378ced4f
1094
1093
2019-11-18T15:04:15Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters (namely <>!&/").
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
aa9ce3eebbc18adc280266e88a0722b6d5456ab2
1095
1094
2019-11-18T15:04:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
0bfee144850967dcb9445156592f1598edbd1610
1096
1095
2019-12-02T14:54:22Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
* CGI Parameters sanitised for security reasons.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7f498b2f3e3939acd2e41755d7706e0fc6e945f2
1097
1096
2019-12-02T14:54:45Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
* CGI Parameters sanitised for security reasons.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b3aedc36d936fa993932f171ae2e550ac2c91ae7
1098
1097
2019-12-02T15:10:44Z
JoergHoletschek
3
/* Version 3.7.3 [2019-12-02] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
342e8d61b98259f3267ed710acade462a44e32e2
1103
1098
2020-07-06T15:48:35Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fix in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
667334e562d6c07bc3aac6c26f0c36f55bf082f0
1104
1103
2020-07-20T16:22:18Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
* Fix in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
e193bd65e3dacdba74fef5857021dbbd0d153249
1105
1104
2020-11-19T17:45:33Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b784ff9f0e1ad02c5cfe27253e395144604db7bf
1117
1105
2021-02-10T16:30:28Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5eb58b8bd905d6ad23d786f6051b38d528cc91b2
1118
1117
2021-05-17T09:44:15Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a919aad5d9b09da48633910de379aa3b2c82ee3e
FAQ
0
52
1106
864
2020-11-30T13:03:35Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/ipt) you can create a DarwinCore Archive (see http://rs.tdwg.org/dwc/terms/guides/text/index.htm for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
===When trying to run BioCASe after installation, I get an internal server error (500). But the log folder of BioCASe is empty, nothing to find.===
This is probably because BioCASe - or the web server that runs BioCASe - can't write to this folder. Make sure that the web server (user ''www-data'' for Apache) has write permissions for this folder.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
91789348c04f6d4044da2b08d963f6e6e7ebdb2d
1119
1106
2021-05-26T08:27:44Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/ipt) you can create a DarwinCore Archive (see http://rs.tdwg.org/dwc/terms/guides/text/index.htm for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===After installing BioCASe, I get a "500: Internal Server Error"===
# Make sure you've run the setup-script after downloading or checking out BioCASe with the right Python version. To check this, open the file ''www/index.cgi'' of your installation in a text editor and check the first line: This is the Python executable used by Python.
# Empty the folder ''cache'' of your installation - please remove all folders and files you find here.
# If the problem persists, please contact us!
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
===When trying to run BioCASe after installation, I get an internal server error (500). But the log folder of BioCASe is empty, nothing to find.===
This is probably because BioCASe - or the web server that runs BioCASe - can't write to this folder. Make sure that the web server (user ''www-data'' for Apache) has write permissions for this folder.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
602e6fbd60bca1a00fdcb40e5f3ed9228cf1e997
1120
1119
2021-05-26T08:30:08Z
JoergHoletschek
3
/* After installing BioCASe, I get a "500: Internal Server Error" */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/ipt) you can create a DarwinCore Archive (see http://rs.tdwg.org/dwc/terms/guides/text/index.htm for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===After installing BioCASe, I get a "500: Internal Server Error"===
# Make sure you've [[Installation#Running_the_Setup_Script | run the setup script]] after downloading or checking out BioCASe with the right Python version. To check this, open the file ''www/index.cgi'' of your installation in a text editor and check the first line: This is the Python executable used by Python.
# Empty the folder ''cache'' of your installation - please remove all folders and files you find here.
# If the problem persists, please contact us!
===I already have a newer Python version installed on my server which is already used by another application. I read that Python 2.5 is recommended for BioCASe. What should I do?===
You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install Python 2.5 for BioCASe.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
===When trying to run BioCASe after installation, I get an internal server error (500). But the log folder of BioCASe is empty, nothing to find.===
This is probably because BioCASe - or the web server that runs BioCASe - can't write to this folder. Make sure that the web server (user ''www-data'' for Apache) has write permissions for this folder.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
b0d658893a59185e5562e1a92253a454e08cd519
VersionHistory
0
23
1121
1118
2021-06-04T10:37:04Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5b4da8036d5a8bfd95d0c6dc6577a53dd9f25d18
1155
1121
2021-06-24T16:31:44Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Apache configuration snippet is now compatible with Apache 2.4
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
add2012df9a3f4e319d83d657172634c689eafaa
1156
1155
2021-06-24T16:43:57Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f7f7f1f61f12c83381a5768b1011b2ec708cf424
1157
1156
2021-07-16T11:42:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
0045aad7c5a8b3843c38bcf87620bf6e0b1046e1
1158
1157
2021-07-19T11:39:07Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
27e14151b9c7bfcffe3d35a1d17f475ce374f691
1159
1158
2021-07-20T11:05:24Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''.
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1a5e2f9c24fe0979b4c3332981a7b01275ba9253
1160
1159
2021-07-20T11:12:51Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1d23002869d945d2f5ca7ec678148e13fcba9218
1161
1160
2021-09-16T15:18:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7bb6284b26e1e02bb612da2a407bb7ee7b9340cc
1162
1161
2021-09-24T07:48:37Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.0 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8a8c57c2be9fe5051d3af228e52f191696052736
1163
1162
2021-09-24T07:48:49Z
JoergHoletschek
3
/* Version 3.8.0 [2021-09-24] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
f2564d7e05e99eb1177ecfac1d9c5b77fd1590ea
1164
1163
2021-12-07T13:53:39Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
28f6f9fabd7843937b10f08b75b9128f1ba5f4b6
1165
1164
2021-12-21T10:12:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
Fixes
* Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
* Check if file system supports Unicode; if not, convert archive file names to ASCII.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6185c055dfb4fae0090e57e8368c7d50a8ead3f4
1166
1165
2021-12-21T10:13:59Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
Fixes
* Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
* Check if file system supports Unicode; if not, convert archive file names to ASCII.
* Fix for Ubuntu 18.04 - problems with Umlauts in archiving logs (Vienna Jacq server).
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
de7ac786ef759e00dca8a032911bf4b49a9bc27e
1167
1166
2021-12-21T16:10:01Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
Fixes
* Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
* Check if file system supports Unicode; if not, convert archive file names to ASCII.
* Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduces in that version.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
896581bcd5fc1b03a1843d0c4a496ca81f28ab80
1168
1167
2021-12-21T16:10:49Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduces in that version.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
c5d386cd086c838452cab155f27ec7435bb3f5bb
1169
1168
2021-12-21T16:13:38Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
84971800159eaecf0f6e98d2bab7bea72e654b67
1170
1169
2021-12-22T09:51:13Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
8a3e0586299ad4b8302ad047b8c046316369fad6
FAQ
0
52
1122
1120
2021-06-07T11:06:46Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/ipt) you can create a DarwinCore Archive (see http://rs.tdwg.org/dwc/terms/guides/text/index.htm for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===After installing BioCASe, I get a "500: Internal Server Error"===
# Make sure you've [[Installation#Running_the_Setup_Script | run the setup script]] after downloading or checking out BioCASe with the right Python version. To check this, open the file ''www/index.cgi'' of your installation in a text editor and check the first line: This is the Python executable used by Python.
# Empty the folder ''cache'' of your installation - please remove all folders and files you find here.
# If the problem persists, please contact us!
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
===When trying to run BioCASe after installation, I get an internal server error (500). But the log folder of BioCASe is empty, nothing to find.===
This is probably because BioCASe - or the web server that runs BioCASe - can't write to this folder. Make sure that the web server (user ''www-data'' for Apache) has write permissions for this folder.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
40c8d0a514e4d6664c320d293a0018437118e786
Installation
0
6
1123
971
2021-06-07T11:12:38Z
JoergHoletschek
3
/* Installing Apache/IIS and Python */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, since you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
ac0484c87e696f8302535f5da148e0e05336242f
1125
1123
2021-06-07T12:30:19Z
JoergHoletschek
3
/* Regular BioCASe Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_2.6.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
e75bdb251407db3842e6d275179ef9d55369890a
1126
1125
2021-06-07T12:32:06Z
JoergHoletschek
3
/* Downloading from the Subversion Repository */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|180px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|480px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
da1994fd075d04f5b1d67ad492bbf7c87aad6e20
1130
1126
2021-06-07T12:38:19Z
JoergHoletschek
3
/* Downloading from the Subversion Repository */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|480px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|480px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
f5befc2227f51127fcd1077170984b9251e89994
1132
1130
2021-06-07T12:39:38Z
JoergHoletschek
3
/* Running the Setup Script */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|480px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
16ceff96ac12d3cfb3d5622dfddc23f1d907b037
1135
1132
2021-06-07T12:41:49Z
JoergHoletschek
3
/* Apache */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
* http://www.ecp.cc/pyiis.html
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
1a7ed55395eb4d3e1433961bbc05c11508b8051e
1136
1135
2021-06-07T12:42:41Z
JoergHoletschek
3
/* Internet Information Server */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|500px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
4591064d8f76299c4eda81d20b9119afc2c23ace
1138
1136
2021-06-07T12:43:27Z
JoergHoletschek
3
/* Testing the Link */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
de78a6dca22dd95d376a33288e979581436cd5b5
1139
1138
2021-06-07T12:44:06Z
JoergHoletschek
3
/* Installing Additional Python Packages/Java */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, it should look similar to this:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
cc5b12014dcf7fe617aa28168ec0b4f047eeedff
1140
1139
2021-06-07T13:02:10Z
JoergHoletschek
3
/* Installing Additional Python Packages/Java/Graphviz */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed:
[[image:instLibrariesVanilla.png|450px]]
The BioCASe libraries are already included in the archive file you’ve downloaded (or the Subversion repository you checked out from). The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
fec520b99bba363a04a1a3c4de78db6ec1220267
1142
1140
2021-06-07T13:04:27Z
JoergHoletschek
3
/* Installing Additional Python Packages/Java/Graphviz */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|450px]]
The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
ced02892e31520c3f1471249a7f69550b0a289eb
1143
1142
2021-06-07T13:05:10Z
JoergHoletschek
3
/* Installing Additional Python Packages/Java/Graphviz */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
The 4SuiteXML library is required only for the Local Query Tool – if you don’t plan to use it, you can ignore it. Otherwise click on the Download link, find the installer appropriate for your operating system and install it.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
141f2e706b32f652fc68da124f639746a0b48c81
1144
1143
2021-06-07T13:09:44Z
JoergHoletschek
3
/* Installing Additional Python Packages/Java/Graphviz */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, for example, click on the download link for the MySQL module, find the correct installer for your Python version and operating system and install. Once the installation is done, after reloading the libraries test page in the browser, the according list entry should turn from an orange ‘not installed’ into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
cd25e5b0498644c4213d6b062ace201e87e96fb7
1145
1144
2021-06-07T13:15:25Z
JoergHoletschek
3
/* Installing Additional Python Packages/Java/Graphviz */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link, find the correct installer, and… you know the story.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). If it is installed on the machine, but the version is not shown as in the screenshot above, please specify the full path to the Java executable.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
698d757cd116af07c06a749a48cf91e9b40b135e
1146
1145
2021-06-07T13:20:32Z
JoergHoletschek
3
/* Installing Additional Python Packages/Java/Graphviz */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
f3588fba7e19ceac6df10b039f1a47954760d411
1148
1146
2021-06-07T13:24:45Z
JoergHoletschek
3
/* Changing the Default Password */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for you DBMS, 4SuiteXML (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz Dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
Let’s assume you want to use BioCASe in conjunction with a MySQL and an Access database (which will be connected to through ODBC) and you don’t care for the Query Tool, the libs page should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
52ef7b2e742c9a9f2fd07143b7c38e4d73a711e3
1149
1148
2021-06-07T13:32:27Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and want to use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|450px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
eba9f0d625588d9eec378c799d976adb9c5d0b28
1151
1149
2021-06-07T13:33:07Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and want to use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|550px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
989ef403176e5ee026c80c0c817dffbd4bcbf2b3
1152
1151
2021-06-07T13:33:21Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and want to use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
13c1ede499609a58c0c108ed8454099667ad90ab
1153
1152
2021-06-07T13:33:49Z
JoergHoletschek
3
/* Checking Your Installation */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|250px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
4d6c6b2fa88a33679f254cf1bf16749facadc70e
1154
1153
2021-06-07T13:42:58Z
JoergHoletschek
3
/* Downloading from the Subversion Repository */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3 to run, it doesn't work with Python 2, which ended its life cycle in 2020. On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|300px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
5ac50825fae507761eb367ee0943b318760d725e
File:DockerInstall.png
6
114
1124
951
2021-06-07T12:28:44Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:DockerInstall.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstTortoiseDialog.png
6
9
1127
18
2021-06-07T12:32:34Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstTortoiseDialog.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstTortoiseMenu.png
6
8
1128
17
2021-06-07T12:34:59Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstTortoiseMenu.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstBiocaseFolder.png
6
7
1129
16
2021-06-07T12:36:33Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstBiocaseFolder.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstSetupScriptStart.png
6
10
1131
342
2021-06-07T12:38:55Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstSetupScriptStart.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstSetupScriptDone.png
6
11
1133
22
2021-06-07T12:40:09Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstSetupScriptDone.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstHttpdConf.png
6
12
1134
26
2021-06-07T12:40:59Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstHttpdConf.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstBiocaseStartpage.png
6
13
1137
27
2021-06-07T12:43:07Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstBiocaseStartpage.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstLibrariesVanilla.png
6
14
1141
588
2021-06-07T13:02:31Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstLibrariesVanilla.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstConfigTool.png
6
15
1147
32
2021-06-07T13:21:59Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstConfigTool.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:InstLibrariesDone.png
6
16
1150
592
2021-06-07T13:32:44Z
JoergHoletschek
3
JoergHoletschek uploaded a new version of [[File:InstLibrariesDone.png]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
VersionHistory
0
23
1171
1170
2022-06-08T14:51:26Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.2 [2021-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
de327cb8b58aca960805e55bbab3c83936f8c9b6
1172
1171
2022-06-08T14:51:37Z
JoergHoletschek
3
/* Version 3.8.2 [2021-06-08] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a14c69dbe5acf5db156af163875d26e47a74939d
1174
1172
2023-01-13T09:52:48Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== 3.8.3 [2023-01-xx]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
90f61f6994750ac81bfd0aea4b078dde64e855c7
1175
1174
2023-01-13T12:12:54Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3dbe382bc0f2ea957e31ea2ec71dac8fbf270841
1176
1175
2023-04-18T10:19:01Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fix for login page of configtool (didn't used the webroot from configuration)
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2c8b3f61e8f6d6db18e228696e1cce32ed40cd04
1177
1176
2023-08-18T11:59:51Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
24ca2b444c7dcbf2eef79e9449d4fce0b7597615
1178
1177
2023-08-18T12:03:21Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
716398cfd24632659f5c11bad09d3f356631e66b
1179
1178
2023-09-29T13:50:29Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for empty webroots (like biocase.xxxx.de)
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
1e32becb0bcef8a03838f30b49ed2f7cc99ea54c
1180
1179
2023-10-02T10:18:57Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9c7ca59249f72b8e2ee725a05bac5d1a1a9b6556
1181
1180
2023-11-30T11:14:04Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
6ccd84f2d312ab52ea2fd4eac8e071bcc07b8da6
1182
1181
2024-04-15T13:50:29Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Timeout added for the request to retrieve latest version from sbuversion repository
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ca8c08834c5a7fda3c2556e21fbf988e97877df4
1184
1182
2024-07-09T07:46:28Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
3c68cf34e95be61a712cdf46e31888de2163e585
1186
1184
2024-11-04T11:51:26Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
b6f7597556b09744ddc46ceae0fe88648bdfe8db
1187
1186
2024-11-14T10:40:08Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
efd1155dee7b85ed98d98c38b9e989d4c37225d1
1188
1187
2024-11-14T15:06:43Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
5b09b41263fa8614a5af21144418c5db57234671
1189
1188
2024-12-12T08:51:32Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version Version 3.8.5 [2023-11-30] [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
eb086bef75b46f8e6f946e02556c6ef4e26320b8
1190
1189
2024-12-12T08:51:52Z
JoergHoletschek
3
/* Version Version 3.8.5 [2023-11-30] [2024-12-12] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ea4b78f6fc9e852aadcbcf48c0a2f1b3eddad09c
1191
1190
2024-12-19T14:50:44Z
JoergHoletschek
3
/* Version Version 3.8.6 [2024-12-12] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
9dec8ade17019699680a8d7c28e22e1de4a8d992
1192
1191
2024-12-19T14:51:03Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
2b0e8774eace1363371dd664b01d21d70c250304
1193
1192
2025-01-21T09:11:38Z
JoergHoletschek
3
/* Current Version 3 */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
672fffc8870ff9905cc8cffb6bbd5a66313f513e
1194
1193
2025-02-11T11:03:16Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Update hint now uses link to new Git repo instead of Subversion
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
ad3e7bf603541b36bccbbe5952c9f81c28262722
1200
1194
2025-02-13T12:07:19Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Update hint now uses link to new Git repo instead of Subversion
* Use alternative DB connector pymysql if importing MySQLdb fails (apparently on latest Ubuntu distributions). Thanks to Kjell-Åke Lundblad from Nordic Genetic Resource Center for this!
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
7c16102daa5812c8920bfcc4e204bac6cefacfcc
1201
1200
2025-03-04T12:16:42Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Upcoming ===
* Code repo moved to git: https://git.bgbm.org/biocase/bps
* Update hint now uses link to new Git repo instead of Subversion
* Use alternative DB connector pymysql if importing MySQLdb fails (apparently on latest Ubuntu distributions). Thanks to Kjell-Åke Lundblad from Nordic Genetic Resource Center for this!
* Miscellaneous optimisations in Docker image (multistage build & chained RUN statements for smaller image size, separate Apache config file, no root user) thanks to Petr Novotný from Prague university!
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
a4bb0f2e8b6e08059d9f1a41fbc3e1f13d81c8f1
1202
1201
2025-03-04T14:03:28Z
JoergHoletschek
3
/* Upcoming */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.7 [2025-03-04] ===
* Code repo moved to git: https://git.bgbm.org/biocase/bps
* Update hint now uses link to new Git repo instead of Subversion
* Use alternative DB connector pymysql if importing MySQLdb fails (apparently on latest Ubuntu distributions). Thanks to Kjell-Åke Lundblad from Nordic Genetic Resource Center for this!
* Miscellaneous optimisations in Docker image (multistage build & chained RUN statements for smaller image size, separate Apache config file, no root user) thanks to Petr Novotný from Prague university!
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
fcce7d87123647033caf7a3116a20d5b4263e798
1203
1202
2025-03-05T10:23:25Z
JoergHoletschek
3
/* Version 3.8.7 [2025-03-04] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.7 [Upcoming] ===
* Code repo moved to git: https://git.bgbm.org/biocase/bps
* Update hint now uses link to new Git repo instead of Subversion
* Use alternative DB connector pymysql if importing MySQLdb fails (apparently on latest Ubuntu distributions). Thanks to Kjell-Åke Lundblad from Nordic Genetic Resource Center for this!
* Miscellaneous optimisations in Docker image (multistage build & chained RUN statements for smaller image size, separate Apache config file, no root user) thanks to Petr Novotný from Prague university!
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
04b0eb4ea6ea1521165f285ae574ce5e9fd6ab43
1204
1203
2025-03-06T10:04:55Z
JoergHoletschek
3
/* Version 3.8.7 [Upcoming] */
wikitext
text/x-wiki
== Current Version 3 ==
=== Version 3.8.7 [2025-03-06] ===
* Code repo moved to git: https://git.bgbm.org/biocase/bps
* Update hint now uses link to new Git repo instead of Subversion
* Use alternative DB connector pymysql if importing MySQLdb fails (apparently on latest Ubuntu distributions). Thanks to Kjell-Åke Lundblad from Nordic Genetic Resource Center for this!
* Miscellaneous optimisations in Docker image (multistage build & chained RUN statements for smaller image size, separate Apache config file, no root user) thanks to Petr Novotný from Prague university!
=== Version 3.8.6 [2024-12-12] ===
* Timeout added for the request to retrieve latest version from subversion repository
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
* Dockerfile adapted to latest Debian version and Python 3.13
=== Version 3.8.5 [2023-11-30] ===
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
* Fix for CMF upgrade function
=== Version 3.8.4 [2023-08-18] ===
* Fix for login page of configtool (didn't used the webroot from configuration)
* Use SQL statements with parameters for most DB mods
=== Version 3.8.3 [2023-01-13]===
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
=== Version 3.8.2 [2022-06-08]===
'''Important: BioCASe now requires Python version 3.7+'''
* Fixes
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
=== Version 3.8.1 [2021-09-24] ===
* DarwinCore Archives
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
** Invalid term ''occurrenceDetails'' removed
* Smaller fixes
** Apache configuration snippet is now compatible with Apache 2.4
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
=== Version 3.8.0 [2021-06-04] ===
* BioCASe now runs on Python 3 - yeah!
* Advantages
** Removal of external dependencies: consistent use of internal Python packages
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
** Better handling of invalid database values (control characters used to break requests)
** Easier installation: All database-dependent packages can be installed by Python itself
** DB connection setting "encoding" removed (will be detected automatically)
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
=== Version 3.7.4 [2021-05-17] ===
* Last version for Python 2!
* Fixes
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
=== Version 3.7.3 [2019-12-02]===
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
=== Version 3.7.2 [2019-07-10]===
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
* Bugfixes in Local Query Tool
** Error page on "Grouping page" now displayed correctly.
** for SSL handshake error on certain installations if HTTPS is used.
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
* QueryTool: Preview added in detail view for multimedia types video and sound
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
=== Version 3.7.1 [2018-10-02] ===
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
=== Version 3.7 [2018-06-12]===
* Dockerfile and Makefile added for dockerisation
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
* Java version now shows type of JRE installed (for example OpenJDK)
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
* Apache snippet in setup script adapted to Apache 2.4
* Fully functional demo data source included (uses included Sqlite database).
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
* Fixes
** in dbmod_oracle for metadata retrieval
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
=== Version 3.6.4 [2017-07-04] ===
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
* ''System administration'' page now allows to view log files in browser
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
* Fixes
** Bugfix in wrapper core for multi-column primary keys
** Bugfix for "remove cached objects" in system administration
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
=== Version 3.6.3 [2016-08-08] ===
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
* Fix/change for dbmod_oracle.py: Paging is now faster
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
=== Version 3.6.2 [2016-07-21] ===
* Debug output now contains INFO items on time required for SQL execution and XML creation.
* Changes in DarwinCore transformation:
** Transformation streamlined
** ''IdentificationQualifier'' is now correctly filled from ABCD field
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
* Fixes
** Bugfix in metadata retrieval for dbmod_pymssql
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
=== Version 3.6.1 [2016-03-14] ===
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
* Fixes
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
=== Version 3.6.0 [2015-10-27] ===
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
* XML archiving improved
** uses less memory now (and will be probably faster with larger datasets)
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
* Support for ABCD 2.1 added to QueryTool and archiving.
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
* DB mod for Excel not experimental any more.
* Fixes
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
** Warning ''Destination hostname could not be determined'' removed.
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
=== Version 3.5.3 [2015-01-23] ===
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
* New experimental dbmod for Excel (ODBC).
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
* Fixes
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
** for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
** CMF upgrades now also keep the static table definition.
=== Version 3.5.2 [2014-07-18] ===
* Fixes
** For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
** Admin password removed from configuration dump in system administration.
** For update hint (for the case that an installation was updated before the hint advised this).
** DwC archiving
*** For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
*** EML document now also valid if some metadata elements in ABCD are empty.
* Namespace prefix for ABCD 2.1 added.
* Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
* Warning added to table setup if configured PKs/FKs do not exist in database any more.
=== Version 3.5.1 [2014-04-10] ===
* DwC Archives
** Terms ''verbatimCoordinates'', ''coordinatePrecision'', ''georeferenceProtocol'', ''verbatimElevation'', ''verbatimDepth'', ''minimumDistanceAboveSurfaceInMeters'', ''maximumDistanceAboveSurfaceInMeters'', ''locationRemarks'', ''identificationVerificationStatus'', ''recordNumber'' added.
** Term ''verbatimLocality'' removed (ABCD element AreaDetail now stored as ''locationRemarks''), term ''eventID'' removed (ABCD Gathering/Code now stored as ''fieldNumber'').
** ABCD element CollectorsFieldNumber is now correctly mapped to ''recordNumber''; ''fieldNumber'' is filled with ABCD elemen Gathering/Code.
* DB connectivity
** Paging mechanism optimised for Oracle (rownum replaced with row_number).
** Unicode handling changed for MySQL.
** Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
** Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
** When Postgres is used, another port than the default 5432 can be used.
* Update Mechanism
** Provider Software checks for updates once a week and shows update hint if a new version is available.
** Installation script now supports importing the configuration of an old installation, including mapped data sources.
* QueryForm now also shows Dataset Inventory.
* Testlibs page now shows detailed error message in hover text for packages that are not installed.
* Data source lists are now sorted alphabetically.
* Fixes
** If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
** Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
** Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.
=== Version 3.5 [2013-12-05] ===
* XML archiving now shows progress in percent.
* Mapping editor concept tree
** Overhauled (collapsable subtrees thanks to Falko Glöckler)
** Fix for attributes (used to be misplaced when ''show all concepts'' was checked)
** Now has a floating ''Save'' button
* New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
* Fixes
** Term ''recordedBy'' is now filled correctly in DarwinCore archives.
** Mapping editor now works even if there is no connection to the database.
** Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
** XML archiving now works for datasets with characters ''&'', ''<'' or ''>'' in title.
* Cosmetics
** Datasource page: List of target schemas for possible upgrades now hides ''cmf_'' prefix.
=== Version 3.4.2 [2013-07-15] ===
* XML Archiving can now be limited to certain datasets within one data source.
* Optional attribute ''expires'' for archives added to dataset inventory.
* Fixes:
** On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
** Archiving page now also works with Safari.
** DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
** Namespace prefixes added for DNA and EFG extensions.
** More verbose error messages for dbmods odbc_access and odbc_tsql.
=== Version 3.4.1 [2013-04-04] ===
* Fixes:
** in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
** in dbmod_mysql (MySQL) for unicode databases.
** in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
** Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
** for non-ASCII characters in element attributes (used to break the request).
=== Version 3.4 [2013-02-20] ===
* XML archiving re-implemented:
** Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
** XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
** Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
* DwC archive transformation simplified.
* Archiving page overhauled.
* Archiving information shown in datasource configuration page overhauled.
* New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
* Corrections in layout of DB structure page in datasource configuration tool.
* Default record limit for web service set to 1000.
* Change in dbmod_tsql: Do not display tables/views of schemas ''INFORMATION_SCHEMA'' and ''sys''.
* Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
* Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
* Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
* Fix for dbmod_orcale: Synonyms for tables now included in table lists.
* Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
* Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.
=== Version 3.3.2 [2012-11-26]===
* Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
* Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.
=== Version 3.3.1 [2012-11-09] ===
* Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
* Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
* Fixes
** dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
** dbmod_oracle/oracle now use correct format for date/datetime conversion
** base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
** Bugfix for conversion of XML data type "date"
=== Version 3.3 [2012-10-04] ===
* Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
* Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
* Bugfixes
** Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
** Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
** Dummy files added to empty folders to prevent WinZip from ignoring them.
** Local QueryTool: Umlauts in scientific names are now replaced with placeholder *
=== Version 3.2 [2012-07-09] ===
* DarwinCore Archives fully integrated into config tool interface
* Changes for XML archiving:
** Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
** Log files of failed or cancelled archiving runs can be viewed later
** If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
** Format of output changed
* Fixes for page ''DB Structure'':
** DB graph generation works now also when IIS is used
** No exception thrown in case there is no connection to the database
* Other fixes:
** Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
** install/readme files updated
=== Version 3.1 [2012-04-23] ===
* Fixes for XML archives:
** Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
** Webinterface overhauled; reacts faster now because server interaction has been reduced
** If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
** XML declaration added to documents
** If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
** Bugfix for the case that no results are returned for the chosen mapping.
** Archiving binary moved from archive working folder to archive lib folder
* Metadata retrieval added for pymssql (SQL Server connectivity package)
* Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
* "Wrong" error messages removed for unicode datasources and in mapping editor
* Setup script now fixes write permissions for archive folders (working/download directory)
* Hint on the usage of literals and concatenation added to mapping editor
* Bugfix in library test page (for the case that Apache has different access privileges than Python)
* Bugfix in Mapping Editor for literals containing unicode characters
* Bugfixes for deleting a datasource:
** Archive folders will now be correctly removed (both working and download directory)
** Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
* Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
* Bugfix for IIS: Error message "No handlers could be found for logger lib" removed
===Version 3.0.1 [2012-04-05]===
replaced by 3.1
===Version 3.0 [2011-12-14]===
* New feature: XML Archives (integrated into UI), DwC Archives (separate application)
* List of table/column names now also available for Oracle databases
* "Report a bug" links added
* Fixes in wrapper core:
** ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
** Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
* Optimization in wrapper core:
** Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
** Db_mod Oracle now uses paging optimization.
===Version 3.0RC2 [2011-11-24]===
===Version 3.0RC1 [2011-11-01]===
== Version 2 History ==
===Version 2.6.1 [2011-08-23]===
* Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
* ''Help'' links now point to the respective sections of the new PyWrapper Wiki.
* Link to FAQ added to the encoding error page (which can be used to alter system enocding).
* Non-existing upgrade function removed from setup script.
* Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
* Bugfix in XML Handler for unary operators (isNull, isNotNull).
===Version 2.6.0 [2011-06-07]===
New Features:
* Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
* When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
* Support for DNA extension of ABCD (data model for the DNA Bank network) added
* Mapping Editor shows XML Path for current element
* Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
* Several confirmation dialogs and smaller changes in UI.
* mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
* "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.
Bugs fixed:
* Session management: User gets logged out only when inactive for more than 30 mins.
* Bugfix for unicode characters in mapped literals.
* Mapping editor: Added elements do not disappear temporarily any more.
* Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
* Graphviz dot binary now works also when installed in a folder with a name containing spaces
* Creating multiple mapping files for same namespace will be prevented now
* Display issues for paths containing "\b" and "\t"
* Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.
=== Version 2.5.4 [2010-09-14] ===
Withdrawn; changes included in version 2.6
=== Version 2.5.3 [2010-05-12] ===
* Support for HISPID5 added
* Bugfix CMF upgrade
* Bugfix QueryTool (Stylesheet transformation error)
=== Version 2.5.2 [2009-10-01] ===
* Bugfix QueryTool (Unicode conversion error)
=== Version 2.5.1 [2009-01-25] ===
* Security Bugfix (database credentials removed from debug output)
=== Version 2.5.0 [2008-04-29] ===
* replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
* removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
* Introduced a new ''cache'' directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
* remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
* Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
* When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
* Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
* new sesion based login that stays
* updated setup.py script
* changed the library test page
* and last but not least for developers: cleaned up quite some code
=== Version 2.4.2 [2006-11-16] ===
* configtool mapping pane. use anchors to go back to last editing position
* typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
* ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!
=== Version 2.4.1 [2006-06-26] ===
* Football Worldcup 2006 logos included
* minor bugfixes (dead links)
* admin password management fixed
=== Version 2.4.0 [2006-04-06] ===
* move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
* webapps log into rotating files instead of screen
* updated CMF parser service link
* configtool catches errors for unknown static aliases
* querytool XSLTs for abcd & abcdefg2.06
* remove wrapper_config.xml
* removed character encoding bug in CMF pickling.
=== Version 2.3.2 [2006-03-06] ===
* ABCDEFG extension 1.0 for Earth sciences included
* List available character encodings for python2.4 and 64bit systems
* QueryTool capable of querying DiGIR providers for details.
* new synthesys/biocase QT skin
=== Version 2.3.1 [2005-11-30] ===
* new 4th dimension dbmod!
* record filters inside CMFs fixed
* works with NoDIT v2 again
* GCP Passport 1.03 added
=== Version 2.3.0 [2005-11-03] ===
* compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
* Graphviz's dot is being used to visualize the database structure.
* ABCD 2.06 included instead of ABCD2.05
=== Version 2.2.4 [2005-10-13] ===
* include PonTaurus example db
* scans without a filter crashed with some dbmods. bug fixed.
* use select distinct in access for scans
* ConfigTool includes graphical view of the db structure graph through graphviz dot images
* CMF filters with scan filters crashed the wrapper. solved.
* typeconverter: fixed bug in transforming zero-length strings to integers.
=== Version 2.2.3 [2005-09-01] ===
* "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
* abcd2.05 debugform templates included
* fixed scan problem with oracle8 module
* fixed connection problem with native firebird module
* Querytool allows to view raw xml
* Querytool can handle unicode queries now
* Concatenation with pure whitespace works now in wrapper output
* database module is logged again into the protocol header. was broken before
* if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
* configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section
=== Version 2.2.2 [2005-07-22] ===
* Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
* Update MCPD CMF template to include w3c types.
* Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.
=== Version 2.2.1 ===
* Alternative root tables for SPICE wrappers work now correctly.
* Hierarchy requests in SPICE parse correct ID parameters now.
* corrected SPICE1.3 CMF template
* full Berlin Model SPICE CMF example
=== Version 2.2.0 [2005-07-18] ===
* System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
* setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
* SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
* ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
* Bugfixes in configtool, mapping section:
** Internet Explorer compatability fixed (no tablealias names were saved)
** CMF filter display fixed. Colored green now
** Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
** Fixed minor display problems with attributes
* fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
* Allow case insensitive like searches in oracle if wanted.
* The performance debug logging works again
=== Version 2.1.0 ===
* CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
* SPICE search: bug removed with genus search including the wildcard
* SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
* optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
* cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
* oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
* attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
* bug in local conditional mapping removed.
* logging fixed (error and request)
* only use "text" instead of "string" and "unicode" everywhere now in the code.
* ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].
=== Version 2.0.3 ===
* SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.
=== Version 2.0.2 ===
* Limit for Oracle via ROWNUM implemented for ora8,9&10
* Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
* SQLLite module added
=== Version 2.0.1 ===
* ABCD 2.0 CMF included
Bugfixes
* Configtool
** Lot of little bugs solved.
** Make possible to map attributes
** Be able to delete mappings
** Alert user when several CMFs with the same namespace exist for a datasource
** Allow full xpaths to be entered directly into the add path form
** allow datasource admin to delete all serialized objects
* QueryTool
** More inteligent XSLT for processing
* PyWrapper
** Solved error with wrapper not presenting attributes
** Empty elements are now excluded in the output.
=== Version 2.0.0 ===
* SPICE protocol supported for Species2000 CDM 1.20
* completely rewritten config tool including a concept retrieval interface to search for concepts
* completely rewritten an adaptable query tool with skin support
== Version 1 history ==
=== Version 1.6b ===
* needs at least version 1.4b of the pywrapper
* added pywrapper skeleton for new species2000 protocol
* cleaned the querytool sourcecode (thanks to Doreen Pahlke)
* added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.
=== Version 1.56 ===
* Removed authorization bug when entering non ascii characters as the password.
* added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg
=== Version 1.55 ===
* NoDIT v2 metaprofile templates and preconfigured database corrected
* added a GBIF registration method in the configtool
=== Version 1.54 ===
* added a query engine prototype for CMF concepts to the configtool
* more database modules supported (Oracle8, FoxPro)
=== Version 1.52 ===
* added URL encoding service in cgi-test.
* added AltText to images.
* removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
* Updating the cgi-test script to fully support Unix systems.
=== Version 1.5 ===
* Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
* template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
* private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.
=== Version 1.41 ===
* first release including the query-tool
36f31b8e9783ecf2865a5e61bb6f76e717a7fa55
Installation
0
6
1173
1154
2022-06-10T09:33:01Z
JoergHoletschek
3
/* Installing Apache/IIS and Python */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|300px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
eed443e74737730ddfd6e42c3e6842781b41aa18
1183
1173
2024-06-11T13:55:21Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading the Provider Software ===
You can download the BPS either as a g-zipped archive or directly from our Subversion repository. First option is the easiest if you’re not familiar with Subversion; the second option makes it easier for you to update your installation later. So if you’ve never used Subversion before and plan not to keep your installation up-to-date, choose the archive. If you plan to set up a productive installation, which should be kept up-to-date, you should opt for the subversion repository.
==== Downloading the Archive File ====
Just download the archive from the [http://www.biocase.org/products/provider_software Download section of the BioCASe site] and unpack the contents to the destination folder.
==== Downloading from the Subversion Repository ====
If you’re using Windows, you need to install a Subversion client first (try [http://tortoisesvn.net Tortoise], which comes with a nice user interface). Linux and MacOS usually have Subversion preinstalled.
The URL for the latest stable version is http://ww2.biocase.org/svn/bps2/branches/stable, which we recommend to use. Updating your installation to the latest BPS version is then as easy as just running the Subversion update command. If you want to download a defined version, the URL would be http://ww2.biocase.org/svn/bps2/tags/release_3.8.0.
In order to download the BPS from subversion with the Subversion command line client (preinstalled on Linux/MacOS), just go to the destination and type in <pre>svn co http://ww2.biocase.org/svn/bps2/branches/stable biocase</pre>This will connect to our server with anonymous access and download all files to the folder ''biocase''. In case you’re using Tortoise on Windows, right-click on the destination in the Windows explorer and choose <small>Checkout</small>. Fill in the URL, change the destination folder name into something meaningful and press OK:
[[image:instTortoiseMenu.png|300px]][[image:instTortoiseDialog.png|450px]]
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
d6b62f4aa6417d609779a5823af69d52db7d0192
1195
1183
2025-02-11T14:57:26Z
JoergHoletschek
3
/* Downloading the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [http://www.example.com Git page]. There are two archives available for download:
* The [ default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [Kettle libraries] are included in the download.
* The [ minimal package] doesn't contain the Kettle libraries, hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system e.g. ''/opt'' on Linux). It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.6''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
314d469b88e712a65556e9b347ae2aa174956d17
1196
1195
2025-02-11T15:02:59Z
JoergHoletschek
3
/* Downloading and unpacking the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [https://git.bgbm.org/biocase/bps/-/releases/permalink/latest Git page]. There are two archives available for download:
* The [https://git.bgbm.org/biocase/bps/-/archive/3.8.6/bps-3.8.6.zip default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [Kettle libraries] are included in the download.
* The [https://www.biocase.org/products/provider_software/files/bps-3.8.6-minimal.zip minimal package] doesn't contain the [https://github.com/pentaho/pentaho-kettle Kettle libraries], hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system e.g. ''/opt'' on Linux). It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.6''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
0362ac1034bab5b361680762272f4deecb6e0640
1197
1196
2025-02-11T15:03:55Z
JoergHoletschek
3
/* Downloading and unpacking the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [https://git.bgbm.org/biocase/bps/-/releases/permalink/latest Git page]. There are two archives available for download:
* The [https://git.bgbm.org/biocase/bps/-/archive/3.8.6/bps-3.8.6.zip default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [https://github.com/pentaho/pentaho-kettle Kettle libraries] are included in the download.
* The [https://www.biocase.org/products/provider_software/files/bps-3.8.6-minimal.zip minimal package] doesn't contain the Kettle libraries, hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system e.g. ''/opt'' on Linux). It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.6''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
eb5bdbabfdbc86af6d9ac44e5c387e4379d4b7f9
1198
1197
2025-02-11T15:05:05Z
JoergHoletschek
3
/* Downloading and unpacking the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [https://git.bgbm.org/biocase/bps/-/releases/permalink/latest Git page]. There are two archives available for download:
* The [https://git.bgbm.org/biocase/bps/-/archive/3.8.6/bps-3.8.6.zip default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [https://github.com/pentaho/pentaho-kettle Kettle libraries] are included in the download.
* The [https://www.biocase.org/products/provider_software/files/bps-3.8.6-minimal.zip minimal package] doesn't contain the Kettle libraries, hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system. It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.6''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
c0fcc670fd092c6172865d95c250f97d004f18e1
1199
1198
2025-02-11T15:06:51Z
JoergHoletschek
3
/* Downloading and unpacking the Provider Software */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://localhost/biocase''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [https://git.bgbm.org/biocase/bps/-/releases/permalink/latest Git page]. There are two archives available for download:
* The [https://git.bgbm.org/biocase/bps/-/archive/3.8.6/bps-3.8.6.zip default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [https://github.com/pentaho/pentaho-kettle Kettle libraries] are included in the download.
* The [https://www.biocase.org/products/provider_software/files/bps-3.8.6-minimal.zip minimal package] doesn't contain the Kettle libraries, hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system. It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.0''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
604b4ef1b0647fd03ce7cf4c6906ab738af8ca10
1205
1199
2025-03-10T08:46:05Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://<dockerhost>/''. Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [https://git.bgbm.org/biocase/bps/-/releases/permalink/latest Git page]. There are two archives available for download:
* The [https://git.bgbm.org/biocase/bps/-/archive/3.8.6/bps-3.8.6.zip default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [https://github.com/pentaho/pentaho-kettle Kettle libraries] are included in the download.
* The [https://www.biocase.org/products/provider_software/files/bps-3.8.6-minimal.zip minimal package] doesn't contain the Kettle libraries, hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system. It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.0''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
adef9e075422ebed6a2c11bf1b76f7626d4bb13c
1206
1205
2025-03-10T08:48:11Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://<dockerhost>'' (or ''http://<dockerhost>:8181' if you used port 8181). Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [https://git.bgbm.org/biocase/bps/-/releases/permalink/latest Git page]. There are two archives available for download:
* The [https://git.bgbm.org/biocase/bps/-/archive/3.8.6/bps-3.8.6.zip default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [https://github.com/pentaho/pentaho-kettle Kettle libraries] are included in the download.
* The [https://www.biocase.org/products/provider_software/files/bps-3.8.6-minimal.zip minimal package] doesn't contain the Kettle libraries, hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system. It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.0''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
f14f1a143987a0850e313c5876f7c38a12b4b171
1207
1206
2025-03-10T08:48:31Z
JoergHoletschek
3
/* Installing BioCASe from a Docker image */
wikitext
text/x-wiki
This part of the wiki explains how to install the BioCASe Provider Software. Depending on your skills, it should take between 15 and 60 minutes. If you’re a beginner, please read the [[BeginnersGuide|Beginner’s Guide]] first.
== Requirements and Considerations ==
Before installing, please make sure that the system you’re intending to install the BPS on meets the following requirements (If you find out one of these items is not met, please ask your system administrator for help, read the [[FAQ]] or get in [[Special:Contact|contact with the BioCASe Team]].):
# You have administrative privileges on this machine, i.e. the user rights to install new software packages.
# It is accessible from outside your institution. This means it either needs to be outside any institutional firewall or, more likely, the HTTP port is open for an existing firewall.
# A direct connection can be established from this machine to the database to be published – either because there’s no firewall in between, or the port used by the DBMS is open (e. g. 3306 for MySQL).
In addition to the regular installation, you can install BioCASe from a Docker image. Docker is an operating-system-level virtualization software that allows easy software deployment in so-called containers. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide]. '''If you're famliar with Docker, we'd suggest to use the Docker path for installing BioCASe''' - read more in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]] below.'''
== Installing BioCASe from a Docker image ==
Good choice! Installing BioCASe from a Docker image is much easer than installing the required components step-by-step. In addition, it's easier to update an existing installation. If you don't know yet what Docker is, you should read the [https://docs.docker.com/get-started/ Get Started Guide] first.
'''Important note:''' BioCASe requires Docker version 17 or later. If you already have Docker installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
For installing BioCASe from the Docker image, please follow these steps:
# If you're not using Linux, install the ''make'' tool from https://gnuwin32.sourceforge.net/packages/make.htm.
# Install Docker Community Edition (Docker CE). For detailed instructions, see [https://docs.docker.com/install/ About Docker CE] and choose the tutorial for your platform. To make sure Docker is properly installed, run ''docker --version'' in a terminal and make sure the version number is 17+.
# Download the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] that contains the commands for installing and updating BioCASe. Use "Save as..." to store it to your home folder on the server machine.
# Open a terminal window and change the work directory to the location you've just saved the Makefile to. Then type in ''make install'' and press enter. This should download the latest BioCASe image, create a BioCASe container and run it.
Per default, Docker will use port 80 for BioCASe. If this port is already used by another application on your server, you can instruct Docker to use another port. For using port 8181, for example, type in ''make install PORT=8181'' instead:
[[File:DockerInstall.png|650px]]
Voilà, that's it! To check your BioCASe installation, use your Browser to go to ''http://<dockerhost>'' (or ''http://<dockerhost>:8181'' if you used port 8181). Don't forget to [[Installation#Changing_the_Default_Password | change the default password]].
You can also use the Makefile for stopping and starting the BioCASe container (for example, if you restart your server each night automatically) - just type ''make stop'' and ''make start''. For removing the container, use ''make remove'', for updating your BioCASe installation ''make update''.
'''Important note:''' The configuration and the log files of your BioCASe installation, as well as any XML and DwC archives created, will be stored in Docker hosted volumes. That means they are stored outside of the BioCASe container and will be preserved, even when the container is removed (actually, that's what happens if you update your installation). Docker hosted volumes are stored in the ''volumes'' folder of your docker installation, e.g. /var/lib/docker/volumes. If you want to backup the configuration of your BioCASe installation, just backup the folder /var/lib/docker/volumes/bps_config. To learn more about docker hosted volumes, please refer to the [https://docs.docker.com/storage/volumes/ Docker guide].
== Regular BioCASe Installation ==
This is the path to choose if you haven't heard of [https://www.docker.com/ Docker] yet. If you have experience with this virtualisation software, we'd suggest to install BioCASe from the Docker image (instructions in section [[Installation#Installing_BioCASe_from_a_Docker_image | Installing from a Docker image]]).
BioCASe runs on both Windows and Linux machines. Two thoughts to consider for you:
* If you want to use ODBC to connect to your database (for example to an Access database), you should make sure that an ODBC driver is available for the OS of your choice. For an Access database, for example, such a ODBC driver is available only for Windows - so you should go for Windows.
* If you don't wanna use ODBC, because you plan to connect to a wide-spread DB system such as MySQL, Postgres or MS SQL Server, we recommend Linux (Debian).
=== Installing Apache/IIS and Python ===
If you’re using a Linux system, you probably don’t need to install either, since Apache and Python are usually preinstalled. Same holds true for MacOS, but you should have a look at one of the articles on the web to find out about the file locations.
Even though the BPS runs with both Apache and Internet Information Server (IIS), we recommend using Apache, which is much easier to configure. However, if you’re already using IIS, you might want to stick with that.
The BPS requires Python 3.7+ to run, it doesn't work with Python 2, which ended its life cycle in 2020 (same is true for Python 3 versions < 3.7). On most Linux systems, Python 3 will be pre-installed. If not, you should be able to install Python using ''apt-get update'' and ''apt-get install python''. (By the way: You can install several different Python versions on the same machine without any conflicts.)
If you’re installing on a Windows Vista (poor you) or Windows 7 machine, we recommend not to install Apache in the default program files folder, since there is some magic spell on that which can get you into trouble when changing Apache’s configuration files. Just choose another path (Apache Software Foundation?) to spare that hassle.
Once you’ve successfully installed Apache and Python, you can proceed to the next step.
=== Downloading and unpacking the Provider Software ===
You can find the latest release of BioCASe on our [https://git.bgbm.org/biocase/bps/-/releases/permalink/latest Git page]. There are two archives available for download:
* The [https://git.bgbm.org/biocase/bps/-/archive/3.8.6/bps-3.8.6.zip default package (recommended)] contains the full installation and allows the generation of DarwinCore archives. For this feature, the [https://github.com/pentaho/pentaho-kettle Kettle libraries] are included in the download.
* The [https://www.biocase.org/products/provider_software/files/bps-3.8.6-minimal.zip minimal package] doesn't contain the Kettle libraries, hence it's not possible to create DarwinCore archives with such an installation. Choose this download only if you have a good reason to do so.
Download the file to your server and unpack it to the desired location of your file system. It contains the BioCASe Provider Software in a folder that contains the version number, e.g. ''bps-3.8.0''. We recommend to rename it to something that doesn't include the version number, so you don't need to touch your web server's configuration during future updates.
For the remainder of this guide, we will assume you’ve installed the BPS into a folder named ''biocase'', which should look like this by now:
[[image:instBiocaseFolder.png|650px]]
=== Running the Setup Script ===
The setup script will initiate the configuration files with values you provide and point the script files to your Python installation (you can re-run the setup script in case that location changes). If you want to modify any of settings you made during the setup, you can change the values in the configuration tool later.
In order to run the script, open a terminal window (or “command prompt” in Windows). Change the working directory to the folder you’ve downloaded the BPS to (''biocase'') and type in:<pre>python setup.py</pre> In case Python is not found, you’ll have to add the full path name to the Python executable. Make sure the Python version given in the fifth line of the output is the one you desire (otherwise add the path to the correct executable):
[[image:instSetupScriptStart.png|550px]]
The questions asked by the setup script do have defaults. If you want to keep them, just press <small>Return</small>.
<strong>Webserver domain:</strong> This is the domain name of the web server you’re installing BioCASe on, e.g. ''http://www.myinstitution.org''. You can keep the default ''localhost'' as long as you’re configuring and testing the installation locally; for production you’ll need to change that into the correct domain name (or IP address) later.
<strong>Base URL:</strong> This will become the second part of the URL your installation will use. If you keep the default biocase, your installation will be accessible later at ''www.myinstitution.org/biocase'', for example.
After answering these two questions, the script will update your files. At the end of the output you can find the lines you'll need later to create the link between BioCASe and your web server, so do not close the window!
[[image:instSetupScriptDone.png|550px]]
=== Linking BioCASe and Your Web Server ===
The public part of the provider software is stored in the ''www'' subfolder of your BioCASe installation and must be configured in your web server as a public folder. You should always make this folder public using a virtual directory: This means that you should never install BioCASe under the default root folder of your web server. Doing so can compromise your server security and will allow people to see your configuration files (which include passwords). So since we installed BioCASe in ''c:\biocase'', the folder that must be published with a virtual directory is ''c:\biocase\www'' and will be accessible later through ''http://www.myinstitution.org/biocase''.
==== Apache ====
If you use Apache, adding the BioCASe folder to your web server environment is as simple as copying the lines printed at the end of the setup script to the end of the Apache configuration file ''httpd.conf''. This can typically be found in the ''conf'' folder of your Apache installation. If you’re adding BioCASe to an already productive web server, please ask the server admin before doing any changes!
[[image:instHttpdConf.png|550px]]
Save the file and restart Apache for the changes to take effect.
==== Internet Information Server ====
If you use Internet Information Server, you need to create a virtual directory for the folder ''c:\biocase\www'' using the IIS Server Manager. Grant all rights for this directory (Read, Write, Script Execution, Directory listing). You should also add ''index.html'' to the list of default documents (<small>Virtual Directory > Properties > Documents > Default</small>).
In order to associate Python scripts with Python in IIS 5/6, you need to use the <small>Configure</small> button on the virtual directory tab and associate the file extensions .cgi and .py with Python (see screenshot below). In IIS 7, you can open this dialog by choosing <small>Add Script Map</small>. Note the placeholders ''%s %s'' after the Python executable!
[[File:instAddScriptMap.png|330px]]
If you run into problems configuring IIS, you should have a look at the tutorials available on the web, for example
* http://haishibai.blogspot.de/2011/02/setting-up-python-on-iis-7_01.html
* http://support.microsoft.com/kb/276494
==== Testing the Link ====
Once you’re done, you can test your BioCASe Installation by opening a browser and typing in ''http://localhost/biocase'' (replace ''localhost'' with the domain name of the machine you installed BioCASe on, if you’re not working locally). You should then see the start page of the BPS:
[[image:instBiocaseStartpage.png|550px]]
=== Installing Additional Python Packages/Java/Graphviz ===
Before you can start configuring your installation, you need to install additional packages, depending on the management system used for the database to be published and the functions of the BPS you intend to use.
On the BPS start page, click on <small>Utilities</small>, then <small>library test</small> in order to navigate to the library test page that shows the status of installed libraries. On a fresh BPS installation, only the BioCASe libraries should be installed, since they're part of the archive file you’ve downloaded (or the Subversion repository you checked out from):
[[image:instLibrariesVanilla.png|550px]]
If you plan to use the Local Query Tool (a small portal for querying and browsing your BioCASe webservice), you need to install the lxml library. You can do this easily by running the Python Package Installer (PIP): ''pip install lxml''.
For each DBMS you plan to use with BioCASe (i.e. you have a database you want to publish with BioCASe), you’ll have to install the corresponding package. So if your collection is stored in a MySQL database, you'll need the MySQLdb library; the table shows you the command to run for installing it using pip: ''pip install mysqlclient''. Once pip has installed the package, reload the libraries test page. The according list entry should turn from an orange ''not installed'' into a green version number. Redo this process for all DBMS you want to connect to.
The Graphviz library listed under optional external binaries is used by the BPS to create a graph of your database’s data model in the table setup (you will learn in the [[DatasourceSetup#Setting_up_the_Database_Structure|Table Setup]] about this). If the data model is very simple (i.e., not more than 3 or 4 tables), you probably can spare the effort of installing Graphviz. Otherwise we recommend installing it: Simply click on the Download link and install the package using an installer file or a package manager on Linux.
If you want to create DarwinCore Archives for your web services, you also need to install a Java Runtime Environment (JRE). BioCASe requires Java 1.8 or later for creating DarwinCore archives, so please check the version listed on the Testlibs page if it's already installed on the server.
=== Changing the Default Password ===
The configuration tool is a browser interface that allows you to configure almost every aspect of the BPS. As a last step of the setup, you should change the password.
Go back to the Start page of the BPS (by clicking <small>Start</small> at the top of the page, or by retyping ''http://localhost/biocase'' if the server is running on your computer), choose <small>Config Tool</small>, then <small>System Administration</small>. You will then be prompted for a password. Type in the default ''ACDC'', then click <small>Submit</small>.
The top of the configuration page you’ll be directed to should look similar to this:
[[image:instConfigTool.png|500px]]
In the first two lines, you’ll see the values you entered during the setup script (in this case, the defaults ''localhost'' and ''biocase''). In the fourth line, enter a new password. Please be careful when typing (if you forget the password some day, you can reset it by directly editing the configuration file). Press <small>update config</small> to save the new password to the configuration file.
In case you’ve installed Graphviz, you need to tell the BPS the location of the binaries, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk and enter the path to the binary executable into the text box labelled <small>Path to Graphviz executable</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:/Program Files/Graphviz 2.44.1/bin/''. Press <small>update config</small> to save the path.
=== Checking Your Installation ===
Before you proceed to the configuration, you should make sure everything is installed correctly:
# Typing in ''http://localhost/biocase'' (or the appropriate values of your installation) takes you to the entry page of the provider software (as shown in the section [[#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]]).
# The libraries test page (<small>Utilities > library test</small>) shows you’ve installed the packages for your DBMS, lxml (if you want to use the Local Query Tool), Java (if you want to create DarwinCore Archives) and the Graphviz dot (if you decided so).
# <small>Status of writeable directories</small> shows a green <small>writeable</small> for all four directories. If not, the path to problematic file will be given – please grant write access to Python.
If you want to connect BioCASe to a variety of different database management systems, create DarwinCore archives and use the QueryTool, the libraries test pages should look like this:
[[image:instLibrariesDone.png|650px]]
== Updating an existing BioCASe Installation ==
=== Updating a BioCASe Docker installation ===
This is very simple with the [http://ww2.biocase.org/svn/bps2/trunk/Makefile Makefile] you downloaded for installing BioCASe. Just go to the folder where you stored the file and run ''make update''. This will stop and remove the BioCASe container, download the latest BioCASe image and create/start a new BioCASe container. Since the configuration files are not stored within the container, all your data sources will be preserved.
=== Updating a regular BioCASe installation ===
'''<u>Important Note</u>''': If you have a running BioCASe installation, you shouldn’t touch it until you’ve successfully installed a new version. So keep the old installation instead of replacing it!
==== Updating from version 2.5 or later ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version.
# Download the new version as described above into a directory with the name you just memorised.
# Change directory to the new installation and run setup script. When asked whether to import the configuration from an old installation, answer yes. The setup script will now import the configuration of the old installation, including the data sources.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
==== Updating from older versions < 2.5 ====
# Rename the folder of the old installation to something meaningful, for example ''biocase_old'', and memorise its old name. By doing this, you can always revert to this working version; moreover, you will need the configuration files later.
# Download the new version as described above into a directory with the name you just memorised.
# [[Installation#Running_the_Setup_Script|Run the setup script]]. When asked whether to import the configuration from an old installation, just press Return (defaults to no). Make sure to provide the the same base URL that was used by the old installation (for example ''/biocase'').
# [[Installation#Changing_the_Default_Password|Change the default password]] of the new installation to the one you used in the old installation.
# Open the file ''config/config.ini'' of your old installation in a text editor. Open the config tool of the new installation and navigate to the System Administration page. Compare the settings in the section <small>Server configuration</small> with the values you can find in the old configuration file and change them, if necessary (leave values unchanged if you don't find them in the old file). Press <small>Update config</small>.
# Last, copy the configuration of the BioCASe web services: Open the folder ''config/datasources'' of your old installation and copy all subfolders to ''config/datasources'' of your new installation.
# Done! [[Installation#Checking_Your_Installation|Try out your new installation]] to make sure it is working.
10b09c5d338d0167dfb4461f62211c41c020e614
FAQ
0
52
1185
1122
2024-08-15T09:26:44Z
JoergHoletschek
3
/* Installation */
wikitext
text/x-wiki
== General ==
===What is the BioCASe Provider Software and what can I use it for?===
See the [[BeginnersGuide|Beginner's Guide]].
===What do I need to use the BioCASe Provider Software?===
See the requirements in the [[BeginnersGuide|Beginner's Guide]].
===I’m not sure whether the Provider Software is the right choice for me. How do I find out?===
Just [[Special:Contact|contact us]] and describe your situation and what you’re planning to use BioCASe for.
===How much is the BioCASe Provider Software?===
It’s Open Source Software, so you can use it for free.
=== I am not affiliated with any institution. Can I use the Provider Software in spite of that? ===
Sure, you can also use the Provider Software as a private person.
===Can I use the Provider Software on my operating system?===
I guess. As long as a web server (such as Apache) and Python are available for your operating system, you can – and they are for most operating systems.
===I cannot meet all of the requirements for installing the BPS. What options do I have?===
Basically, there are two options: If you still want to use BioCASe (maybe because you owe very rich data and need the comprehensive ABCD schema for publication), you might ask a partner institution already using BioCASe to host your data. In this case, you would send the database (or Excel file) to this institution, where it would be published using the existing BioCASe installation. You would still remain owner of the data and attributed accordingly on the data portals; the partner institution would act merely as a technical host (like a commercial internet host).
Another option would be to use one of the tools offered by GBIF. With the Integrated Publishing Toolkit (IPT, http://www.gbif.org/ipt) you can create a DarwinCore Archive (see http://rs.tdwg.org/dwc/terms/guides/text/index.htm for more on DwC Archives) from your database, which you would send to GBIF for publication. The GBIF Spreadsheet Processor (http://code.google.com/p/gbif-spreadsheet-processor/) is a similar tool intended for smaller occurrence datasets stored in Excel files. The downside for both is that they support only the DarwinCore standard, which is rather limited in comparison to ABCD.
===I have some recommendations/bug report. How can I file it?===
You can either leave a message on the respective ''Discussion'' page or get directly in [[Special:Contact|contact with us]].
== Installation ==
===After installing BioCASe, I get a "500: Internal Server Error"===
# Make sure you've [[Installation#Running_the_Setup_Script | run the setup script]] after downloading or checking out BioCASe with the right Python version. To check this, open the file ''www/index.cgi'' of your installation in a text editor and check the first line: This is the Python executable used by Python.
# Empty the folder ''cache'' of your installation - please remove all folders and files you find here.
# If the problem persists, please contact us!
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an empty page or a “URL not found” error. What’s wrong?===
If you get a blank page, that’s probably because Apache (or the web server you use) is not running. Start it and retry. If you get a “The requested URL /biocase was not found on this server” or similar message, the web server doesn’t find your BioCASe installation. Go to the section [[Installation#Linking_BioCASe_and_Your_Web_Server|Linking BioCASe and Your Web Server]] of the [[Installation|Installation guide]] and follow the instructions.
===When typing in the URL for my new installation (<nowiki>http://localhost/biocase</nowiki>), I get an “Internal Server Error: The server encountered an internal error or misconfiguration and was unable to complete your request” message.===
You’re probably using Apache, which cannot find your Python installation. Make sure you’ve installed Python correctly and did run the setup script (see sections [[Installation#Installing_Apache.2FIIS_and_Python|Installing Apache/IIS and Python]] and [[Installation#Running_the_Setup_Script|Running the Setup Script]] in the [[Installation|Installation guide]]).
===I'm using Internet Information Server, and after creating the Virtual Directory for BioCASe, I get a “502.2 - Bad Gateway. The specified CGI application misbehaved by not returning a complete set of HTTP headers” error.===
This happens when you didn't correctly associate .cgi and .py files with Python. Make sure you've linked both files with Python and that the path contains the placeholders ''%s %s'' (see [[Installation#Internet_Information_Server|Linking IIS]]).
===I cannot find the installation package of the database connectivity module for the DBMS and the Python version I am using.===
You’re probably using one of the newer Python versions which are not yet supported by the DB package you want to use (that’s the reason Python 2.5 is recommended). Just install an older version (2.5 or 2.6). You can have several Python versions installed on the same machine, so you can keep the newer version for other applications and install the older version for BioCASe.
===I’ve installed the Python package for my DBMS, but it doesn’t show up in the Test libs page. What’s wrong?===
Python packages are Python version specific and you’ve probably installed the DB package for the wrong Python version. If you have several Python versions installed on your machine, make sure you installed the package for the version that is used by BioCASe.
===I’m using Postgres and installed the psycopg2 lib for that. When connecting, I get a pink error message “A problem occurred in a Python script”; the last line of the error messages reads “psycopg2._psycopg.connection object has no attribute server_version”.===
This is caused by an outdated psycopg2 version. Please install version 2.0.12 or later of psycopg2.
===I'm trying to use BioCASe with Postgres; for this, I tried to install psycopg on Windows. But it doesn't work - either the install crashes, or it finishes, but the test libs page still reports psycopg2 as not installed. In the debug log I can find the error message "ImportError: DLL load failed (...)". What's wrong?===
We suspect this is caused by a bug in recent psycopg2 releases (find more [http://psycopg.lighthouseapp.com/projects/62710/tickets/20 here]). On our test installations, we managed to get round this issue by installing pycopg2 with administration rights. Do do this, right-click the installer file and choose "Run as administrator".
===What's the difference between the DBMS packages odbc_tsql and odbc_tsql_2012 and between pymssql/pymssql_2012, respectively?===
The dbmods ending in "2012" use the new OFFSET clause that was introduced in MS SQL Server 2012. This will make paging faster and increase performance for larger datasets. They work only with SQL Server 2012 or later, and if you use SQL Server 2012, you should use them for best performance. Dbmods without a trailing "2012" work for both older versions and SQL Server 2012, but will be slower in paging large datasets.
===I have problems installing GraphViz. Do I really need it?===
If installed, Graphviz will create a graph of the table you've configured with their primary/foreign keys and the relations between them on the ''Database Structure'' page. If you have more than just a few tables and lots of relations between them, this can be very useful. If you don't need this feature, you don't need to bother installing GraphViz.
===I’ve installed GraphViz, but it doesn’t show up as being installed on the Test libs page.===
You need to tell BioCASe about the location of the GraphViz files, since it is not a Python package that will be registered automatically. In order to do so, locate the Graphviz installation on your local disk. Go to the System Administration and enter the path to the binary executable into the text box labelled <small>Graphviz dot binary</small>. On Linux machines it might look similar to the default (''/usr/local/bin/dot''), on Windows machines it will be probably something like ''C:\Program Files\Graphviz2.26.3\bin\dot.exe''. Press <small>update config</small> to save the path.
===I want to update my BioCASe installation. How do I do this?===
See [[Installation#Updating_an_existing_BioCASe_Installation|Updating an existing BioCASe Installation]].
===I've updated my installation from a version prior to 2.6. Now, when I enter the DB structure, some of the table and column names are gone, the same happens in the mapping editor.===
Starting with version 2.6, BioCASe retrieves table and column names from the database for some database management systems (namely MySQL, SQL Server, Postgres, Foxpro, Access and Oracle). In older versions, you had to enter table/column names manually, and when you did the setup with such an early version, you probably didn't care for upper/lower cases. Since some DB management systems are case-sensitive, BioCASe can't ignore the differences and won't find these technically incorrect names in the lists retrieved from the database. The respective drop down boxes will therefore be empty. If that happens, just select the correct names from the drop down lists.
===When I try to create an archive, I get a "Permission denied" error. Why is that?===
For creating archives, you need to grant write permissions for the folders ''archive'' and ''www/downloads'' of your BioCASe installation to Python. You can check if permissions are set correctly in the test libs page (Start --> Utilities --> Test Libs).
===I'm trying to install BioCASe on Ubuntu (or another Linux). Even though I've run the setup script and added the snippet to the Apache configuration file, I see source code when I try out my installation instead of the pages described in the documentation===
Apparently CGI is not enabled on your machine. Google how to enable CGI for your distribution and follow the instructions you'll find.
===When trying to run BioCASe after installation, I get an internal server error (500). But the log folder of BioCASe is empty, nothing to find.===
This is probably because BioCASe - or the web server that runs BioCASe - can't write to this folder. Make sure that the web server (user ''www-data'' for Apache) has write permissions for this folder.
===I'm running BioCASe in a Docker container and I can't connect to a local MS SQL Server (on the same machine, but not in a Docker)===
Do not use host.docker.internal:host-gateway (e.g 172.17.0.1) to connect, but the external LAN IP, often like 192.168.0.x or 10.x.x.x.
== Debugging ==
===I’ve mapped ABCD2. In the result document, each record of the dataset becomes a single dataset, even though there is just one dataset in the database – what’s wrong?===
That’s probably because you’ve mapped a metadata element to a table that holds several rows for this dataset, so for each row a different dataset gets created. It doesn’t matter whether the values for that field are effectively different from each other; rows are distinguished from each other only by their primary keys.
===I’ve mapped ABCD2, and in the result datasets I get several units for each record, each with the same UnitID.===
That happens when you map a non-repeatable element of ABCD to a database column that has several rows for one record. In order to create a valid ABCD document, for each of these values a new unit gets created by the Provider Software. To solve this, remove the multiple values or map them to a repeatable element.
===I've mapped ABCD2. When testing the web service, I get a negative number for "RecordsDropped" in the response document. What does that mean?===
Same problem as above - it means you have an error in your mapping. Most probably you've mapped a non-repeatable ABCD concept to a table/column in your database that holds several entries per unit (occurrence) record. The BioCASe Provider Software will duplicate the respective unit records to be able to create valid ABCD documents - which is indicated by a negative number of "records dropped". Make sure the cardinality of your database relations match the structure (in respects of element repeatability) of ABCD to avoid this problem.
===I'm using pymssql to connect to a SQL Server database. Char(n) and Varchar(n) strings get truncated to 255 characters - what's wrong?===
This is known limitation of TDS protocol used by pymssql. Just change the data type for columns storing long string to TEXT or create a view that converts Char/Varchar columns to TEXT columns on the fly to work around this issue.
===I'm using pymssql to connect to a SQL Server database, BioCASe is running on a Linux distribution. When I do a Search or Scan request, I don't get any results (0 hits), even though there are definitely records in the database.===
That problem occurs on old versions of pymssql (1.0.2 or earlier) on Linux distributions. Update to version 2.0 or later to solve this. If you still get empty result sets, these posts might be helpful:
* http://open-up.cybertaxonomy.africamuseum.be/forum_topic/important_if_you_use_biocase_bps_linux_platform_connect_ms_sql_server
* http://code.google.com/p/pymssql/issues/detail?id=76.
===The database connection status is No Connection, even though I’ve selected the correct DBMS in the connection settings dialog and entered the credentials into the text boxes.===
Check whether you’ve installed Python package for the DBMS you’re using (test libs page). If you still can’t get a connection, turn on debugging (in the System Administration dialog) and go to the database settings dialog again, press <small>Save</small> to retry connecting. Then see the log files (in the ''log'' folder of your biocase installation) for more detailed error messages.
===I am using BioCASe on a Windows Server. For some queries with the Local QueryForm, I get an error page that is obviously produced by the web server and not BioCASe. It reads "Error Code: 500 Internal Server Error. The request was rejected by the HTTP filter. Contact the server administrator. (12217)"===
This happens when BioCASe is run behind a Microsoft ISA Server/Microsoft Forefront Threat Management Gateway. To solve this problem, follow the instructions given in this article: http://support.microsoft.com/kb/837865.
===The information that can be found in the log files folder is too sparse – what can I do?===
Turn on debugging in the System Administration.
===How do I find out if my BioCASe web service works right?===
Use the Query Form to send a BioCASe request to your web server and check the result document (see the [[Debugging|Debugging guide]] and the [[SampleABCDDocument|Sample ABCD document]] for more).
===I’ve copied a schema mapping for a datasource from an older installation by placing the cmf_ABCD_2.06.xml in the datasource configuration folder, but when querying the datasource, I get a “schema is not supported by this provider” error.===
The Provider Software keeps a list of supported schema mappings in the provider setup file. Just open go to the mapping editor for the schema in question, press Save (without having modified anything), then go back to the overview page of the datasource configuration. The Provider Software will then update the list of the supported schemas.
===When using the local Query Form for debugging, I don’t get any results, even though my web service is working. On pressing Submit, I get a timeout after about a minute.===
That’s probably because the domain configured in the BioCASe System administration is not correct. The default localhost works only if you’re using the query form directly on the server machine. If you’re using them in the browser window of another machine, the domain needs to be configured correctly with the IP address or the full server name (e.g. ''ww3.bgbm.org'').
===I mapped the ABCD concept FullScientificNameString. But when running the Search test (which includes a filter on the scientific name per default), I still get the error message "The requested concept /DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString is not searchable for this provider! Please do a capabilities request to see all searchable concepts." What's wrong?===
The element ''FullScientificNameString'' exists twice in ABCD 2 (as the whole ''TaxonIdentified'' tree that surrounds it): once for the ''Identification'' object under the path above, and then in the ''Synecology'' branch (/DataSets/DataSet/Units/Unit/Gathering/Synecology). This can be a bit confusing, and probably you've accidentally mapped the wrong concept. Change the mapping, and it should work.
===I'm using BioCASe in a Vagrant Virtual Box on MacOS with Synced Folders. When using the Manual Query Form or the Archiving page, I get an "ImportError: No module named wrapper.errorclasses."===
We don't know exactly what causes this, but apparently it happens when BioCASe is run in a Vagrant Virtual Box on MacOS and Vagrant's synced folder are used. We do have a workaround for this, but it is not easy. Please [[Special:Contact|contact us]] for assistance on this.
===I'm using BioCASe on a Windows server and odbc_tsql to connect to an MS SQL Server. Even though I do get results for a SCAN request, I cannot do a SEARCH (invalid document received).===
Please check your encoding settings in the DB connection configuration. If it is set to UTF_8, try Latin_1 instead.
== Trouble Shooting ==
===I’ve forgotten the password of my BioCASe installation. What should I do?===
Just go to the ''config'' folder of your installation and have a look into the file ''config.ini''.
===In the mapping editor, I am trying to insert a literal that contains a non ASCII character. When saving, the system directs me to a page that allows me to change the system encoding to UTF-8. Unfortunately, on my installation there is no such file as printed in the ''technical description''; as a result, I get an enoding error in the Provider Software later on.===
First of all, read the paragraphs on the disadvantages of mapping literals in the [[ABCD2Mapping#Adding_Mandatory_ABCD_Elements|Beginners Guide]] and consider storing the information in a database table instead of mapping it as literals. Then, just move the data to a table and map the database columns. If, after thinking it over again, you still want to map literals with non-ASCII characters, you need to do the following:
* Go to your Python installation (for example ''/usr/lib/python2.5''),
* Create the file ''sitecustomize.py'' in the subfolder ''/site-packages'' with the following two lines:
<pre>
import sys
sys.setdefaultencoding('utf-8')
</pre>
* Save the file and retry. Maybe you'll have to restart your machine for the changes to take effect.
===I get a nice pink “A problem occurred in a Python script” error. What’s wrong?===
Probably something happened we didn’t foresee, or you might have just found a bug. Please take a screenshot of the screen and write down what you did to make this happen. Then [[Special:Contact|contact the BioCASe team]].
===I run into problems when installing/configuring the Provider Software. Neither the tutorials nor these FAQ I am looking at now can help me.===
Just [[Special:Contact|contact us]]; we’ll try our best to help you.
4f0226fb779eaf66d2fa0b0d4385b0833ceb93fb